์›Œํฌ๋กœ๋“œ ๋ฐฐํฌ


์›Œํฌ๋กœ๋“œ ์šด์˜์ž๋Š” ์‹คํ–‰ ์ „์— ๋™์ž‘์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Confidential Space ์›Œํฌ๋กœ๋“œ VM ์ธ์Šคํ„ด์Šค๋กœ ์˜ต์…˜์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ”Œ๋ž˜๊ทธ์—๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ํ•„์ˆ˜ ๊ฐ’์ด ์žˆ์ง€๋งŒ ๋‹ค์Œ์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • VM ์ธ์Šคํ„ด์Šค๋ฅผ ํ”„๋กœ๋•์…˜ ๋˜๋Š” ๋””๋ฒ„๊ทธ Confidential Space ์ด๋ฏธ์ง€์— ๊ธฐ๋ฐ˜ํ• ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.

  • AMD SEV, Intel TDX ๋˜๋Š” Intel TDX์™€ NVIDIA ์ปจํ”ผ๋ด์…œ ์ปดํ“จํŒ…(๋ฏธ๋ฆฌ๋ณด๊ธฐ)์„ ์‚ฌ์šฉํ•˜์—ฌ ์›Œํฌ๋กœ๋“œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ณต๊ฐœ๋กœ ์œ ์ง€ํ• ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.

  • ์‹คํ–‰ํ•  ์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€, Cloud Logging์— ๋กœ๊น…ํ• ์ง€ ์—ฌ๋ถ€, ์„ค์ •ํ•  ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ์„ธ๋ถ€์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” VM ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด VM์— ์—ฐ๊ฒฐํ•  ์„œ๋น„์Šค ๊ณ„์ •๊ณผ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ ์ปจํ”ผ๋ด์…œ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์–ด๋”˜๊ฐ€์— ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ

  • VM ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ปจํ”ผ๋ด์…œ VM์„ ๋งŒ๋“ค๊ณ  WORKLOAD_CONTAINER_NAME๋ผ๋Š” Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

CPU ๊ธฐ๋ฐ˜ ์›Œํฌ๋กœ๋“œ

gcloud compute instances create INSTANCE_NAME \
    --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
    --machine-type=MACHINE_TYPE_NAME \
    --maintenance-policy=MAINTENANCE_POLICY \
    --shielded-secure-boot \
    --image-project=confidential-space-images \
    --image-family=IMAGE_FAMILY \
    --metadata="^~^tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest" \
    --service-account=WORKLOAD_SERVICE_ACCOUNT_NAME@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com \
    --scopes=cloud-platform \
    --zone=ZONE_NAME \
    --project=PROJECT_ID

๋‹ค์Œ ๊ฐ’์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • INSTANCE_NAME: ์ƒˆ VM ์ธ์Šคํ„ด์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY: ์‚ฌ์šฉํ•  ์ปจํ”ผ๋ด์…œ ์ปดํ“จํŒ… ๊ธฐ์ˆ ์˜ ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • SEV

    • TDX

  • MACHINE_TYPE_NAME: VM ๋จธ์‹  ์œ ํ˜•์ž…๋‹ˆ๋‹ค(์˜ˆ: n2d-standard-2). ์ปจํ”ผ๋ด์…œ VM ์ธ์Šคํ„ด์Šค์˜ ์œ ํšจํ•œ ๋จธ์‹  ์œ ํ˜•์€ ์„ ํƒํ•œ ์ปจํ”ผ๋ด์…œ ์ปดํ“จํŒ… ๊ธฐ์ˆ (AMD SEV ๋˜๋Š” Intel TDX)์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋จธ์‹  ์œ ํ˜•, CPU, ์˜์—ญ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

  • MAINTENANCE_POLICY: SEV๋ฅผ ์‚ฌ์šฉํ•˜๋Š” N2D ๋จธ์‹  ์œ ํ˜•์˜ ๊ฒฝ์šฐ ์‹ค์‹œ๊ฐ„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ง€์›์„ ์œ„ํ•ด MIGRATE๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๋จธ์‹  ์œ ํ˜•์˜ ๊ฒฝ์šฐ ๋ผ์ด๋ธŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด ๊ฐ’์„ TERMINATE๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • IMAGE_FAMILY_NAME: Confidential Space ์ด๋ฏธ์ง€์˜ ๊ณ„์—ด์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • confidential-space ํ”„๋กœ๋•์…˜ ์›Œํฌ๋กœ๋“œ

    • ๋””๋ฒ„๊ทธ ์›Œํฌ๋กœ๋“œ์šฉ confidential-space-debug

  • WORKLOAD_AUTHOR_PROJECT: ์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ €์žฅ๋œ Artifact Registry ์ €์žฅ์†Œ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.

  • REPOSITORY_NAME: ์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ €์žฅ๋œ Artifact Registry ์ €์žฅ์†Œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • WORKLOAD_CONTAINER_NAME: ์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • WORKLOAD_SERVICE_ACCOUNT_NAME: ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • WORKLOAD_OPERATOR_PROJECT_ID: ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.

  • ZONE_NAME: VM ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํ–‰๋˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค(์˜ˆ: us-west1-b). Confidential Space์—๋Š” ํŠน์ • ์œ„์น˜์—์„œ ์ œ๊ณต๋˜๋Š” ๋‹ค์Œ ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • PROJECT_ID: ์„ ํƒ์‚ฌํ•ญ. VM ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.

GPU ๊ธฐ๋ฐ˜ ์›Œํฌ๋กœ๋“œ

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

  • ์ปจํ”ผ๋ด์…œ ์ŠคํŽ˜์ด์Šค๋Š” H100 GPU์—์„œ NVIDIA ์ปจํ”ผ๋ด์…œ ์ปดํ“จํŒ… (ํ”„๋ฆฌ๋ทฐ)๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ์š”์ฒญ ์ค‘์ธ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด GPU ํ• ๋‹น๋Ÿ‰์ด ์ถฉ๋ถ„ํ•œ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด GPU ํ• ๋‹น๋Ÿ‰์„ ํ™•์ธํ•˜์„ธ์š”. GPU๊ฐ€ ์žˆ๋Š” ์ปจํ”ผ๋ด์…œ VM ์ธ์Šคํ„ด์Šค์˜ ๊ฒฝ์šฐ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์„ ์ ํ˜• GPU ํ• ๋‹น๋Ÿ‰์„ ์š”์ฒญํ•˜์„ธ์š”. GPU ํ• ๋‹น๋Ÿ‰์„ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ ๋ฆฌ์ „์— ์ƒ์„ฑํ•˜๋ ค๋Š” GPU ๋ชจ๋ธ์˜ ํ• ๋‹น๋Ÿ‰ ์™ธ์—๋„ ๋ชจ๋“  ๋ฆฌ์ „์— ์žˆ๋Š” ๋ชจ๋“  ์œ ํ˜•์˜ ์ด GPU ์ˆ˜์— ์ ์šฉํ•  ์ „์—ญ ํ• ๋‹น๋Ÿ‰(GPUs (all regions))์„ ์ถ”๊ฐ€๋กœ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ• ๋‹น๋Ÿ‰ ์†Œ๋น„๋ฅผ ์•Œ์•„๋ณด๋ ค๋ฉด GPU VM ๋ฐ ์„ ์ ํ˜• ๋ฐฐ์ • ํ• ๋‹น๋Ÿ‰์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

  • MIG์—์„œ ํฌ๊ธฐ ์กฐ์ ˆ ์š”์ฒญ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ œํ•œ์‚ฌํ•ญ์„ ์ฝ์–ด๋ด…๋‹ˆ๋‹ค.

  • NVIDIA ์ปจํ”ผ๋ด์…œ ์ปดํ“จํŒ… (๋ฏธ๋ฆฌ๋ณด๊ธฐ)์— ํ•„์š”ํ•œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ๊ฐ’์ด true์ธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜ tee-install-gpu-driver๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • NVIDIA ๋“œ๋ผ์ด๋ฒ„ ๋ฐ CUDA ํˆดํ‚ท์˜ ๊ฒฝ์šฐ ๊ณต๊ฐ„์ด 30GB ์ด์ƒ์ธ VM ๋ถ€ํŒ… ๋””์Šคํฌ๊ฐ€ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

GPU ๊ธฐ๋ฐ˜ ์›Œํฌ๋กœ๋“œ ๋ฐฐํฌ

GPU ๊ธฐ๋ฐ˜ ์›Œํฌ๋กœ๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ์ŠคํŒŸ ๋˜๋Š” flex-start(๋ฏธ๋ฆฌ๋ณด๊ธฐ) ํ”„๋กœ๋น„์ €๋‹ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ”ผ๋ด์…œ VM ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ŠคํŒŸ

์ŠคํŒŸ ํ”„๋กœ๋น„์ €๋‹ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ฐ€์†๊ธฐ ์ตœ์ ํ™” VM ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“œ์„ธ์š”.

gcloud compute instances create INSTANCE_NAME \
    --provisioning-model=SPOT \
    --confidential-compute-type=TDX \
    --machine-type=a3-highgpu-1g \
    --maintenance-policy=TERMINATE \
    --shielded-secure-boot \
    --image-project=confidential-space-images \
    --image-family=IMAGE_FAMILY_NAME \
    --metadata="^~^tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest~tee-install-gpu-driver=true" \
    --service-account=WORKLOAD_SERVICE_ACCOUNT_NAME@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com \
    --scopes=cloud-platform \
    --boot-disk-size=30G \
    --zone=ZONE_NAME \
    --project=PROJECT_ID

๋‹ค์Œ ๊ฐ’์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • INSTANCE_NAME: ์ƒˆ VM ์ธ์Šคํ„ด์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • IMAGE_FAMILY_NAME: Confidential Space ์ด๋ฏธ์ง€์˜ ๊ณ„์—ด์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • confidential-space-preview-cgpu ํ”„๋กœ๋•์…˜ ์›Œํฌ๋กœ๋“œ

    • ๋””๋ฒ„๊ทธ ์›Œํฌ๋กœ๋“œ์šฉ confidential-space-debug-preview-cgpu

  • WORKLOAD_AUTHOR_PROJECT: ์›Œํฌ๋กœ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.

  • REPOSITORY_NAME: Artifact Registry ์ €์žฅ์†Œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • WORKLOAD_CONTAINER_NAME: ์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • WORKLOAD_SERVICE_ACCOUNT_NAME: ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

  • WORKLOAD_OPERATOR_PROJECT_ID: ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.

  • ZONE_NAME: NVIDIA ์ปจํ”ผ๋ด์…œ ์ปดํ“จํŒ…์„ ์ง€์›ํ•˜๋Š” ์˜์—ญ(๋ฏธ๋ฆฌ๋ณด๊ธฐ) ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

  • PROJECT_ID: ์„ ํƒ์‚ฌํ•ญ. VM ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.

์œ ์—ฐํ•œ ์‹œ์ž‘

flex-start (๋ฏธ๋ฆฌ๋ณด๊ธฐ) ํ”„๋กœ๋น„์ €๋‹ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ธ์Šคํ„ด์Šค ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“  ๋‹ค์Œ ๊ด€๋ฆฌํ˜• ์ธ์Šคํ„ด์Šค ๊ทธ๋ฃน(MIG)์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  1. ์ธ์Šคํ„ด์Šค ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --provisioning-model=FLEX_START \
        --confidential-compute-type=TDX \
        --machine-type=a3-highgpu-1g \
        --maintenance-policy=TERMINATE \
        --shielded-secure-boot \
        --image-project=confidential-space-images \
        --image-family=IMAGE_FAMILY_NAME \
        --metadata="^~^tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest~tee-install-gpu-driver=true" \
        --service-account=WORKLOAD_SERVICE_ACCOUNT_NAME@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com \
        --scopes=cloud-platform \
        --boot-disk-size=30G \
        --reservation-affinity=none \
        --max-run-duration=RUN_DURATION \
        --instance-termination-action=DELETE \
        --project=PROJECT_ID
    

    ๋‹ค์Œ ๊ฐ’์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    • INSTANCE_TEMPLATE_NAME: ์ƒˆ VM ์ธ์Šคํ„ด์Šค ํ…œํ”Œ๋ฆฟ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    • IMAGE_FAMILY_NAME: Confidential Space ์ด๋ฏธ์ง€์˜ ๊ณ„์—ด์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      • confidential-space-preview-cgpu ํ”„๋กœ๋•์…˜ ์›Œํฌ๋กœ๋“œ

      • ๋””๋ฒ„๊ทธ ์›Œํฌ๋กœ๋“œ์šฉ confidential-space-debug-preview-cgpu

    • WORKLOAD_AUTHOR_PROJECT: ์›Œํฌ๋กœ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.

    • REPOSITORY_NAME: Artifact Registry ์ €์žฅ์†Œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    • WORKLOAD_CONTAINER_NAME: ์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    • WORKLOAD_SERVICE_ACCOUNT_NAME: ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    • WORKLOAD_OPERATOR_PROJECT_ID: ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.

    • RUN_DURATION: ์š”์ฒญ๋œ VM ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•  ๊ธฐ๊ฐ„์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ d, h, m ๋˜๋Š” s๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ, ์‹œ, ๋ถ„ ๋˜๋Š” ์ดˆ ์ˆœ์„œ๋กœ ๊ฐ’ ํ˜•์‹์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 30๋ถ„์˜ ๊ฒฝ์šฐ 30m์„, 1์ผ 2์‹œ๊ฐ„ 3๋ถ„ 4์ดˆ์˜ ๊ฒฝ์šฐ 1d2h3m4s๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์€ 10๋ถ„~7์ผ ์‚ฌ์ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • PROJECT_ID: ์„ ํƒ์‚ฌํ•ญ. VM ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.

  2. instance-groups managed create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜์—ญ MIG๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --template=INSTANCE_TEMPLATE_NAME \
        --size=0 \
        --zone=ZONE_NAME \
        --default-action-on-vm-failure=do_nothing
    

    ๋‹ค์Œ ๊ฐ’์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  3. MIG์—์„œ ํฌ๊ธฐ ์กฐ์ ˆ ์š”์ฒญ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” GPU VM ์ธ์Šคํ„ด์Šค ์ˆ˜์™€ ํ•ด๋‹น VM ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•  ๊ธฐ๊ฐ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --resize-by=COUNT \
        --zone=ZONE_NAME
    

    ๋‹ค์Œ ๊ฐ’์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ์ƒ์„ฑํ•œ ํฌ๊ธฐ ์กฐ์ ˆ ์š”์ฒญ์€ MIG๊ฐ€ ์š”์ฒญํ•œ ๋ชจ๋“  GPU VM ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ๊นŒ์ง€ ACCEPTED ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฃน์— ๋ชจ๋“  GPU VM ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ์š”์ฒญ ์ƒํƒœ๊ฐ€ SUCCEEDED๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

  4. ํฌ๊ธฐ ์กฐ์ ˆ ์š”์ฒญ์— ์ถฉ๋ถ„ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ VM ์ธ์Šคํ„ด์Šค๊ฐ€ MIG์— ์ถ”๊ฐ€๋˜๊ณ  ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. MIG์— ์žˆ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜์—ดํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \
        --zone=ZONE_NAME \
        --project=PROJECT_ID
    

    ๋‹ค์Œ ๊ฐ’์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    • INSTANCE_GROUP_NAME: MIG ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    • ZONE_NAME: VM ์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ฌ ์ง€์›๋˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค.

    • PROJECT_ID: ์„ ํƒ์‚ฌํ•ญ. VM ์ธ์Šคํ„ด์Šค ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ฌ ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค ๊ณ„์ •

์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ๊ณ„์ •์„ ์›Œํฌ๋กœ๋“œ์˜ ์ปจํ”ผ๋ด์…œ VM์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ณ„์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์Œ ์—ญํ• ์ด ์žˆ๋Š” ๊ฒฝ์šฐ

    • roles/confidentialcomputing.workloadUser์„ ํ˜ธ์ถœํ•˜์—ฌ ์ฆ๋ช… ํ† ํฐ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    • roles/artifactregistry.reader๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Artifact Registry์— ์ €์žฅ๋œ ์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    • roles/logging.logWriter: STDOUT ๋ฐ STDERR์„ Cloud Logging์œผ๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ

  • ๋ฐ์ดํ„ฐ ๊ณต๋™์ž‘์—…์ž๊ฐ€ Cloud Storage ๋ฒ„ํ‚ท์ด๋‚˜ BigQuery ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ์œ„์น˜์— ๊ธฐ๋ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์œ„์น˜์— ๋Œ€ํ•œ ์ฝ๊ธฐ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์›Œํฌ๋กœ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋Š” ์œ„์น˜(์˜ˆ: Cloud Storage ๋ฒ„ํ‚ท)์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ณต๋™์ž‘์—…์ž์—๊ฒŒ๋Š” ์ด ์œ„์น˜์— ๋Œ€ํ•œ ์ฝ๊ธฐ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋ฐ์ดํ„ฐ ๊ณต๋™์ž‘์—…์ž์™€ ์›Œํฌ๋กœ๋“œ ์šด์˜์ž๋Š” ๋‹ค์Œ์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ๊ณต๋™์ž‘์—…์ž๊ฐ€ ์ง์ ‘ ๋ฆฌ์†Œ์Šค ์•ก์„ธ์Šค ๋Œ€์‹  ์„œ๋น„์Šค ๊ณ„์ • ๊ฐ€์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋น„์Šค ๊ณ„์ •์„ ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ ํ’€ ์ œ๊ณต์—…์ฒด์— ์†์„ฑ ์กฐ๊ฑด์œผ๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    'WORKLOAD_SERVICE_ACCOUNT_NAME@DATA_COLLABORATOR_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts
    
  • ์›Œํฌ๋กœ๋“œ ์šด์˜์ž๊ฐ€ ์„œ๋น„์Šค ๊ณ„์ •์„ ๊ฐ€์žฅํ•˜๋ ค๋ฉด roles/iam.serviceAccountUser ์—ญํ• ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์›Œํฌ๋กœ๋“œ VM ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜

VM์„ ๋งŒ๋“ค ๋•Œ ๋ณ€์ˆ˜๋ฅผ --metadata ์˜ต์…˜์— ์ „๋‹ฌํ•˜์—ฌ Confidential Space ์›Œํฌ๋กœ๋“œ VM ๋™์ž‘์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋ ค๋ฉด ๋จผ์ € --metadata ๊ฐ’์— ^~^ ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ์ง€์ •ํ•˜์—ฌ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ,๊ฐ€ ๋ณ€์ˆ˜ ๊ฐ’์— ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๊ฐ€ ~๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

metadata="^~^tee-restart-policy=Always~tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest"

๋‹ค์Œ ํ‘œ์—๋Š” ์›Œํฌ๋กœ๋“œ VM์— ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ณ€์ˆ˜๊ฐ€ ์ž์„ธํžˆ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ‚ค ์œ ํ˜• ์„ค๋ช… ๋ฐ ๊ฐ’

tee-image-reference

์ƒํ˜ธ์ž‘์šฉ:

  • ๋ฐ์ดํ„ฐ ๊ณต๋™์ž‘์—…์ž: container.image_id ์–ด์„ค์…˜์ž…๋‹ˆ๋‹ค.
๋ฌธ์ž์—ด

ํ•„์ˆ˜ ์ž…๋ ฅ๋ž€์ž…๋‹ˆ๋‹ค. ์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

์˜ˆ
tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest

tee-added-capabilities

์ƒํ˜ธ์ž‘์šฉ:

  • ์›Œํฌ๋กœ๋“œ ์ž‘์„ฑ์ž: allow_capabilities ์‹คํ–‰ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.
JSON ๋ฌธ์ž์—ด ๋ฐฐ์—ด

์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ์— ์ถ”๊ฐ€ Linux ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ
tee-added-capabilities="[\"CAP_SYS_ADMIN\", \"CAP_SYS_CHROOT\"]"

tee-cgroup-ns

์ƒํ˜ธ์ž‘์šฉ:

  • ์›Œํฌ๋กœ๋“œ ์ž‘์„ฑ์ž: allow_cgroups ์‹คํ–‰ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.
๋ถˆ๋ฆฌ์–ธ

๊ธฐ๋ณธ๊ฐ’์€ false์ž…๋‹ˆ๋‹ค. true๋กœ ์„ค์ •ํ•˜๋ฉด /sys/fs/cgroup์—์„œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค cgroup ๋งˆ์šดํŠธ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ
tee-cgroup-ns=true

tee-cmd

์ƒํ˜ธ์ž‘์šฉ:

  • ์›Œํฌ๋กœ๋“œ ์ž‘์„ฑ์ž: allow_cmd_override ์‹คํ–‰ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๊ณต๋™์ž‘์—…์ž: container.cmd_override ์–ด์„ค์…˜์ž…๋‹ˆ๋‹ค.
JSON ๋ฌธ์ž์—ด ๋ฐฐ์—ด

์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ์˜ Dockerfile์— ์ง€์ •๋œ CMD ๋ช…๋ น์–ด๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ
tee-cmd="[\"params1\", \"params2\"]"

tee-container-log-redirect

์ƒํ˜ธ์ž‘์šฉ:

  • ์›Œํฌ๋กœ๋“œ ์ž‘์„ฑ์ž: log_redirect ์‹คํ–‰ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.
์ •์˜๋œ ๋ฌธ์ž์—ด

confidential-space-launcher ํ•„๋“œ ์•„๋ž˜์—์„œ ์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ์˜ STDOUT ๋ฐ STDERR์„ Cloud Logging ๋˜๋Š” ์ง๋ ฌ ์ฝ˜์†”๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์œ ํšจํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • false: (๊ธฐ๋ณธ๊ฐ’) ๋กœ๊น…์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • true: ์ง๋ ฌ ์ฝ˜์†” ๋ฐ Cloud Logging์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • cloud_logging: Cloud Logging์—๋งŒ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • serial: ์ง๋ ฌ ์ฝ˜์†”์—๋งŒ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

์ง๋ ฌ ์ฝ˜์†”์˜ ๋กœ๊ทธ ๋ณผ๋ฅจ์ด ๋†’์œผ๋ฉด ์›Œํฌ๋กœ๋“œ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ
tee-container-log-redirect=true

tee-dev-shm-size-kb

์ •์ˆ˜

/dev/shm ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๋งˆ์šดํŠธ์˜ ํฌ๊ธฐ๋ฅผ kB ๋‹จ์œ„๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ
tee-dev-shm-size-kb=65536

tee-env-ENVIRONMENT_VARIABLE_NAME

์ƒํ˜ธ์ž‘์šฉ:

๋ฌธ์ž์—ด

์›Œํฌ๋กœ๋“œ ์ปจํ…Œ์ด๋„ˆ์—์„œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์›Œํฌ๋กœ๋“œ ์ž‘์„ฑ์ž๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ allow_env_override ์ถœ์‹œ ์ •์ฑ…์—๋„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์„ค์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ
tee-env-example-env-1='value-1'~tee-env-example-env-2='value-2'

tee-impersonate-service-accounts

์ƒํ˜ธ์ž‘์šฉ:

  • ๋ฐ์ดํ„ฐ ๊ณต๋™์ž‘์—…์ž: google_service_accounts ์–ด์„ค์…˜์ž…๋‹ˆ๋‹ค.
๋ฌธ์ž์—ด

์›Œํฌ๋กœ๋“œ ์šด์˜์ž๊ฐ€ ๊ฐ€์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค ๊ณ„์ • ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์›Œํฌ๋กœ๋“œ ์šด์˜์ž๊ฐ€ ์„œ๋น„์Šค ๊ณ„์ •์„ ๊ฐ€์žฅํ•˜๋„๋ก ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ
tee-impersonate-service-accounts=SERVICE_ACCOUNT_NAME_1@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com,SERVICE_ACCOUNT_NAME_2@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com

tee-install-gpu-driver

์ƒํ˜ธ์ž‘์šฉ:

  • ๋ฐ์ดํ„ฐ ๊ณต๋™์ž‘์—…์ž: nvidia_gpu.cc_mode ์–ด์„ค์…˜์ž…๋‹ˆ๋‹ค.
๋ถˆ๋ฆฌ์–ธ

NVIDIA์˜ ์ปจํ”ผ๋ด์…œ ์ปดํ“จํŒ… GPU ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ํ• ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. NVIDIA ์ปจํ”ผ๋ด์…œ ์ปดํ“จํŒ… (๋ฏธ๋ฆฌ๋ณด๊ธฐ)์„ ์ง€์›ํ•˜๋Š” ๋จธ์‹  ์œ ํ˜•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ
tee-install-gpu-driver=true

tee-monitoring-memory-enable

์ƒํ˜ธ์ž‘์šฉ:

๋ถˆ๋ฆฌ์–ธ

๊ธฐ๋ณธ๊ฐ’์€ false์ž…๋‹ˆ๋‹ค. true๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ์‚ฌ์šฉ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ปจํ”ผ๋ด์…œ VM์—์„œ ์ˆ˜์ง‘ํ•œ ์ธก์ •ํ•ญ๋ชฉ์€ guest/memory/bytes_used ์œ ํ˜•์ด๋ฉฐ Cloud Logging ๋˜๋Š” ์ธก์ •ํ•ญ๋ชฉ ํƒ์ƒ‰๊ธฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ
tee-monitoring-memory-enable=true

tee-mount

์ƒํ˜ธ์ž‘์šฉ:

  • ์›Œํฌ๋กœ๋“œ ์ž‘์„ฑ์ž: allow_mount_destinations ์‹คํ–‰ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.
๋ฌธ์ž์—ด

์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋งˆ์šดํŠธ ์ •์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๋งˆ์šดํŠธ ์ •์˜๋Š” type, source, destination๊ฐ€ ํ•„์š”ํ•œ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ํ‚ค-๊ฐ’ ์Œ ๋ชฉ๋ก์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. destination์€ ์ ˆ๋Œ€ ๊ฒฝ๋กœ์—ฌ์•ผ ํ•˜๊ณ  type/source์€ tmpfs์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ
type=tmpfs,source=tmpfs,destination=/tmp/tmpfs,size=12345;type=tmpfs,source=tmpfs,destination=/run/workload

tee-restart-policy

์ƒํ˜ธ์ž‘์šฉ:

  • ๋ฐ์ดํ„ฐ ๊ณต๋™์ž‘์—…์ž: container.restart_policy ์–ด์„ค์…˜์ž…๋‹ˆ๋‹ค.
์ •์˜๋œ ๋ฌธ์ž์—ด

์›Œํฌ๋กœ๋“œ๊ฐ€ ์ค‘์ง€๋  ๋•Œ ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐ์ฒ˜์˜ ๋‹ค์‹œ ์‹œ์ž‘ ์ •์ฑ…

์œ ํšจํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Never(๊ธฐ๋ณธ)
  • Always
  • OnFailure

์ด ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๋•์…˜ Confidential Space ์ด๋ฏธ์ง€์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์˜ˆ
tee-restart-policy=OnFailure

tee-signed-image-repos

์ƒํ˜ธ์ž‘์šฉ:

๋ฌธ์ž์—ด

Sigstore Cosign์—์„œ ์ƒ์„ฑ๋œ ์„œ๋ช…์„ ์ €์žฅํ•˜๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์ปจํ…Œ์ด๋„ˆ ์ €์žฅ์†Œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

์˜ˆ
tee-signed-image-repos=us-docker.pkg.dev/projectA/repo/example,us-docker.pkg.dev/projectB/repo/example,us-docker.pkg.dev/projectC/repo/example

ํ™•์žฅ

ํ”„๋กœ๋•์…˜ Confidential Space ์›Œํฌ๋กœ๋“œ์˜ ํ™•์žฅ ๋ฐ ๊ณ ๊ฐ€์šฉ์„ฑ์€ ๊ด€๋ฆฌํ˜• ์ธ์Šคํ„ด์Šค ๊ทธ๋ฃน์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.