Mengonfigurasi secret

Layanan Anda mungkin harus memiliki dependensi yang memerlukan kunci API, sandi, sertifikat, atau informasi sensitif lainnya. Untuk Cloud Run, Google merekomendasikan agar Anda menyimpan informasi sensitif seperti ini di secret yang dibuat di Secret Manager.

Anda dapat membuat secret tersedia untuk container dengan salah satu dari dua cara berikut:

  • Instal setiap secret sebagai volume, yang membuat secret tersedia untuk container sebagai file. Membaca volume akan selalu mengambil nilai secret dari Secret Manager, sehingga dapat digunakan dengan versi terbaru. Metode ini juga berfungsi dengan baik pada rotasi secret.
  • Teruskan secret menggunakan variabel lingkungan. Variabel lingkungan diselesaikan pada waktu startup instance. Jadi, jika Anda ingin menggunakan metode ini, Google merekomendasikan Anda untuk menyematkan secret ke versi tertentu daripada menggunakan versi terbaru.

Untuk informasi selengkapnya, lihat dokumen praktik terbaik di Secret Manager.

Cara pemeriksaan secret saat deployment dan runtime

Selama deployment layanan, semua secret yang digunakan, baik sebagai variabel lingkungan atau yang dipasang sebagai volume, akan diperiksa guna memastikan akun layanan yang digunakan untuk menjalankan container ini memiliki akses ke secret. Jika ada pemeriksaan yang gagal, deployment layanan akan gagal.

Selama runtime, ketika sistem instance dimulai:

  • Jika secret adalah variabel lingkungan, nilai secret akan diambil sebelum instance dimulai. Jadi, jika pengambilan secret gagal, instance tidak akan dimulai.
  • Jika secret dipasang sebagai volume, tidak akan ada pemeriksaan yang dilakukan selama startup instance. Namun, jika selama runtime secret tidak dapat diakses, upaya untuk membaca volume yang terpasang juga akan gagal.

Kepemilikan volume berbeda berdasarkan lingkungan eksekusi dan jenis deployment

Saat Anda memasang volume secret, identitas yang memiliki file dan direktori akan berbeda bergantung pada lingkungan eksekusi workload dan apakah deployment terdiri dari satu atau beberapa penampung.

Di lingkungan eksekusi generasi pertama tempat Anda men-deploy satu container, volume secret dimiliki oleh identitas yang digunakan untuk container. Dalam kasus lain, volume dimiliki oleh root. Hal ini mencakup:

  • Lingkungan eksekusi generasi pertama tempat Anda men-deploy banyak container
  • Lingkungan generasi kedua

Sebelum memulai

  1. Enable the Secret Manager API.

    Enable the API

  2. Gunakan secret yang ada atau buat secret di Secret Manager, seperti yang dijelaskan dalam Membuat secret.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi secret, minta administrator Anda untuk memberikan peran IAM berikut:

Untuk mengizinkan Cloud Run mengakses secret, identitas layanan harus memiliki peran berikut:

Untuk petunjuk cara menambahkan akun utama identitas layanan ke peran Secret Manager Secret Accessor, lihat Mengelola akses ke secret.

Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat peran IAM Cloud Run dan izin IAM Cloud Run. Jika layanan Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.

Membuat secret dapat diakses oleh Cloud Run

Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.

Anda dapat membuat secret dapat diakses oleh layanan Anda menggunakan Google Cloud Console, Google Cloud CLI, atau file YAML saat men-deploy layanan baru atau memperbarui layanan yang sudah ada, dan men-deploy revisi. Klik tab pilihan Anda:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Service untuk mengonfigurasi layanan baru. Isi halaman setelan layanan awal, lalu klik Container, volume, networking, security untuk memperluas halaman konfigurasi layanan.

  3. Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit dan deploy revisi baru.

  4. Ikuti langkah-langkah untuk memasang secret sebagai volume, atau mengekspos secret sebagai variabel lingkungan.

    • Untuk memasang secret sebagai volume:

      1. Klik tab Volumes, lalu pilih Add volume.
      2. Di daftar Volume type, pilih Secret.
      3. Di kolom Volume name, masukkan nama atau terima nama default.
      4. Dari daftar Secret, pilih secret yang ingin Anda gunakan.
      5. Di kolom Path 1, masukkan nama file yang akan di-mount.
      6. Dalam daftar Version 1, pilih versi secret yang akan direferensikan. Secara default, versi terbaru akan dipilih. Anda dapat memilih versi tertentu jika menginginkannya.
      7. Klik Done.
      8. Buka tab Container untuk memasang secret ke penampung.
      9. Di tab Volume mounts, klik Mount volume.
      10. Dari daftar Name 1, pilih nama volume Anda.
      11. Di kolom Mount path 1, masukkan jalur pemasangan untuk secret ini. Ini adalah direktori tempat semua versi secret Anda ditempatkan.
      12. Klik Done.
      13. Klik Buat atau Deploy.
    • Untuk mengekspos secret sebagai variabel lingkungan:

      1. Klik tab Container.
      2. Di tab Variables and Secrets, klik Referensikan secret.
      3. Di kolom Name 1, masukkan nama variabel lingkungan.
      4. Dari daftar Secret, pilih secret yang ingin Anda gunakan.
      5. Dari daftar Versi 1, pilih versi secret yang akan dirujuk.
      6. Klik Done.
      7. Klik Buat atau Deploy.

gcloud

Agar secret dapat diakses oleh layanan Anda, masukkan salah satu perintah berikut.

  • Untuk memasang secret sebagai volume saat men-deploy layanan:

    gcloud run deploy SERVICE --image IMAGE_URL  \
    --update-secrets=PATH=SECRET_NAME:VERSION

    Ganti:

    • SERVICE dengan nama layanan Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PATH dengan jalur pemasangan volume dan nama file secret. Nama ini harus diawali dengan garis miring, misalnya: /etc/secrets/dbconfig/password, dengan /etc/secrets/dbconfig/ sebagai jalur pemasangan volume, dan password nama file secret.
    • SECRET_NAME dengan nama secret dalam project yang sama, misalnya mysecret.
    • VERSION dengan versi secret. Gunakan latest untuk versi terbaru, atau nomor, misalnya, 2.
  • Untuk menampilkan secret sebagai variabel lingkungan saat men-deploy layanan

    gcloud run deploy SERVICE \
    --image IMAGE_URL \
    --update-secrets=ENV_VAR_NAME=SECRET_NAME:VERSION

    Ganti:

    • SERVICE dengan nama layanan Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • ENV_VAR_NAME dengan nama variabel lingkungan yang ingin Anda gunakan dengan secret.
    • SECRET_NAME dengan nama secret dalam project yang sama, misalnya mysecret.
    • VERSION dengan versi secret. Gunakan latest untuk versi terbaru, atau nomor, misalnya, 2.
  • Anda dapat memperbarui beberapa secret secara bersamaan. Untuk melakukannya, pisahkan opsi konfigurasi untuk setiap secret dengan koma. Perintah berikut memperbarui satu secret yang dipasang sebagai volume dan secret lain yang ditampilkan sebagai variabel lingkungan.

    Untuk memperbarui secret yang ada, masukkan perintah berikut:

    gcloud run deploy SERVICE --image IMAGE_URL \
    --update-secrets=PATH=SECRET_NAME:VERSION,ENV_VAR_NAME=SECRET_NAME:VERSION
  • Untuk menghapus secret yang ada dan membuat secret baru dapat diakses oleh layanan, gunakan flag --set-secrets:

    gcloud run services update SERVICE \
    --set-secrets="ENV_VAR_NAME=SECRET_NAME:VERSION"

YAML

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Untuk secret yang ditampilkan sebagai variabel lingkungan, di bagian env, perbarui ENV_VAR, VERSION, dan/atau SECRET_NAME sesuai keinginan. Jika Anda memiliki beberapa secret yang dipasang sebagai variabel lingkungan, Anda akan memiliki beberapa atribut tersebut.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE_URL
            env:
            - name: ENV_VAR
              valueFrom:
                secretKeyRef:
                  key: VERSION
                  name: SECRET_NAME
  3. Untuk secret yang dipasang sebagai jalur file, perbarui MOUNT_PATH, VOLUME_NAME, VERSION, FILENAME, dan/atau SECRET_NAME sesuai keinginan. Jika Anda memiliki beberapa secret yang dipasang sebagai jalur file, Anda akan memiliki beberapa atribut tersebut.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE_URL
            volumeMounts:
            - mountPath: MOUNT_PATH
              name: VOLUME_NAME
          volumes:
          - name: VOLUME_NAME
            secret:
              items:
              - key: VERSION
                path: FILENAME
              secretName: SECRET_NAME

    Perlu diperhatikan bahwa VOLUME_NAME dapat disetel ke nama apa pun.

    Ganti

    • SERVICE dengan nama layanan Cloud Run Anda
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • REVISION dengan nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
      • Dimulai denganSERVICE-
      • Hanya berisi huruf kecil, angka, dan -
      • Tidak diakhiri dengan -
      • Tidak melebihi 63 karakter
  4. Ganti layanan dengan konfigurasinya yang baru menggunakan perintah berikut:

    gcloud run services replace service.yaml

Terraform

  1. Buat secret dan versi secret.

    resource "google_secret_manager_secret" "default" {
      secret_id = "my-secret"
      replication {
        auto {}
      }
    }
    
    resource "google_secret_manager_secret_version" "default" {
      secret      = google_secret_manager_secret.default.name
      secret_data = "this is secret data"
    }
  2. Buat akun layanan dan beri akun layanan tersebut akses ke secret:

    resource "google_service_account" "default" {
      account_id   = "cloud-run-service-account"
      display_name = "Service account for Cloud Run"
    }
    
    resource "google_secret_manager_secret_iam_member" "default" {
      secret_id = google_secret_manager_secret.default.id
      role      = "roles/secretmanager.secretAccessor"
      # Grant the new deployed service account access to this secret.
      member     = "serviceAccount:${google_service_account.default.email}"
      depends_on = [google_secret_manager_secret.default]
    }
  3. Secret Manager, secret dapat diakses dari Cloud Run sebagai jalur file yang terpasang atau sebagai variabel lingkungan.

    1. Untuk secret yang dipasang sebagai jalur file, referensikan resource Secret Manager di parameter volumes. name sesuai dengan entri dalam parameter volume_mounts:

      resource "google_cloud_run_v2_service" "mounted_secret" {
        name     = "service-with-mounted-secret"
        location = "us-central1"
        ingress  = "INGRESS_TRAFFIC_ALL"
      
        deletion_protection = false # set to "true" in production
      
        template {
          volumes {
            name = "my-service-volume"
            secret {
              secret = google_secret_manager_secret.default.secret_id
              items {
                version = "latest"
                path    = "my-secret"
                mode    = 0 # use default 0444
              }
            }
          }
          containers {
            image = "us-docker.pkg.dev/cloudrun/container/hello"
            volume_mounts {
              name       = "my-service-volume"
              mount_path = "/secrets"
            }
          }
          service_account = google_service_account.default.email
        }
        depends_on = [google_secret_manager_secret_version.default]
      }
    2. Untuk secret yang ditampilkan sebagai variabel lingkungan, referensikan resource Secret Manager dalam parameter env:

      resource "google_cloud_run_v2_service" "env_variable_secret" {
        name     = "service-with-env-var-secret"
        location = "us-central1"
        ingress  = "INGRESS_TRAFFIC_ALL"
      
        deletion_protection = false # set to "true" in production
      
        template {
          containers {
            image = "us-docker.pkg.dev/cloudrun/container/hello"
            env {
              name = "MY_SECRET"
              value_source {
                secret_key_ref {
                  secret  = google_secret_manager_secret.default.secret_id
                  version = "latest"
                }
              }
            }
          }
          service_account = google_service_account.default.email
        }
        depends_on = [google_secret_manager_secret_version.default]
      }

Mereferensikan secret dari project lain

Untuk mereferensikan secret dari project lain, pastikan akun layanan project Anda memiliki akses ke secret tersebut.

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Service untuk mengonfigurasi layanan baru. Isi halaman setelan layanan awal, lalu klik Container, volume, networking, security untuk memperluas halaman konfigurasi layanan.

  3. Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit dan deploy revisi baru.

  4. Ikuti langkah-langkah untuk memasang secret sebagai volume, atau mengekspos secret sebagai variabel lingkungan.

    • Untuk memasang secret sebagai volume:

      1. Klik tab Volumes, lalu pilih Add volume.
      2. Di daftar Volume type, pilih Secret.
      3. Di kolom Volume name, masukkan nama atau terima nama default.
      4. Dari daftar Secret, klik Enter secret manually.
      5. Masukkan ID resource secret dalam format berikut:

        projects/PROJECT_NUMBER/secrets/SECRET_NAME
        

        Ganti kode berikut:

        • PROJECT_NUMBER dengan nomor project Google Cloud Anda. Untuk mengetahui petunjuk mendetail tentang cara menemukan nomor project, lihat Membuat dan mengelola project.

        • SECRET_NAME: Nama secret di Secret Manager.

      6. Di kolom Path 1, masukkan nama file yang akan di-mount.

      7. Dalam daftar Version 1, pilih versi secret yang akan direferensikan. Secara default, versi terbaru akan dipilih. Anda dapat memilih versi tertentu jika menginginkannya.

      8. Klik Done.

      9. Buka tab Container untuk memasang secret ke penampung.

      10. Di tab Volume mounts, klik Mount volume.

      11. Dari daftar Name 1, pilih nama volume Anda.

      12. Di kolom Mount path 1, masukkan jalur pemasangan untuk secret ini. Ini adalah direktori tempat semua versi secret Anda ditempatkan.

      13. Klik Done.

      14. Klik Buat atau Deploy.

    • Untuk mengekspos secret sebagai variabel lingkungan:

      1. Klik tab Container.
      2. Di tab Variables and Secrets, klik Referensikan secret.
      3. Di kolom Name 1, masukkan nama variabel lingkungan.
      4. Dari daftar Secret, klik Enter secret manually.
      5. Masukkan ID resource secret dalam format berikut:

        projects/PROJECT_NUMBER/secrets/SECRET_NAME
        

        Ganti kode berikut:

        • PROJECT_NUMBER dengan nomor project Google Cloud Anda. Untuk mengetahui petunjuk mendetail tentang cara menemukan nomor project, lihat Membuat dan mengelola project.

        • SECRET_NAME: Nama secret di Secret Manager.

      6. Dari daftar Versi 1, pilih versi secret yang akan dirujuk.

      7. Klik Done.

      8. Klik Buat atau Deploy.

gcloud

  • Untuk memasang secret sebagai volume saat men-deploy layanan:

    gcloud run deploy SERVICE --image IMAGE_URL  \
    --update-secrets=PATH=projects/PROJECT_NUMBER/secrets/SECRET_NAME:VERSION

    Ganti:

    • SERVICE dengan nama layanan Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PATH dengan jalur pemasangan volume dan nama file secret. Nama ini harus diawali dengan garis miring, misalnya: /etc/secrets/dbconfig/password, dengan /etc/secrets/dbconfig/ sebagai jalur pemasangan volume, dan password nama file secret.
    • PROJECT_NUMBER dengan nomor project untuk project tempat secret dibuat.
    • SECRET_NAME dengan nama secret, misalnya mysecret.
    • VERSION dengan versi secret. Gunakan latest untuk versi terbaru, atau nomor, misalnya, 2.

YAML

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:

    gcloud run services describe SERVICE --format export > service.yaml

Karena keterbatasan seputar kompatibilitas API, lokasi secret harus disimpan dalam anotasi.

  1. Untuk secret yang ditampilkan sebagai variabel lingkungan:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/secrets: SECRET_LOOKUP_NAME:projects/PROJECT_NUMBER/secrets/SECRET_NAME
        spec:
          containers:
          - image: IMAGE_URL
            env:
            - name: ENV_VAR
              valueFrom:
                secretKeyRef:
                  key: VERSION
                  name: SECRET_LOOKUP_NAME

    Ganti:

    • SERVICE dengan nama layanan Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • ENV_VAR
    • PROJECT_NUMBER dengan nomor project untuk project tempat secret dibuat.
    • SECRET_NAME dengan nama secret, misalnya mysecret.
    • VERSION dengan versi secret. Gunakan latest untuk versi terbaru, atau nomor, misalnya, 2.
    • SECRET_LOOKUP_NAME dengan setiap nama yang memiliki sintaksis nama secret yang valid (misalnya. my-secret), nama tersebut bisa sama seperti SECRET_NAME
  2. Untuk secret yang dipasang sebagai jalur file:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/secrets: SECRET_LOOKUP_NAME:projects/PROJECT_NUMBER/secrets/SECRET_NAME
        spec:
          containers:
          - image: IMAGE_URL
            volumeMounts:
            - mountPath: MOUNT_PATH
              name: VOLUME_NAME
          volumes:
          - name: VOLUME_NAME
            secret:
              items:
              - key: VERSION
                path: FILENAME
              secretName: SECRET_LOOKUP_NAME

    Ganti:

    • SERVICE dengan nama layanan Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PATH dengan jalur pemasangan volume dan nama file secret. Nama ini harus diawali dengan garis miring, misalnya: /etc/secrets/dbconfig/password, dengan /etc/secrets/dbconfig/ sebagai jalur pemasangan volume, dan password nama file secret.
    • PROJECT_NUMBER dengan nomor project untuk project tempat secret dibuat.
    • SECRET_NAME dengan nama secret, misalnya mysecret.
    • VERSION dengan versi secret. Gunakan latest untuk versi terbaru, atau nomor, misalnya, 2.
    • SECRET_LOOKUP_NAME dengan setiap nama yang memiliki sintaksis nama secret yang valid (misalnya. my-secret), nama tersebut bisa sama seperti SECRET_NAME
    • VOLUME_NAME dengan nama apa pun (misalnya my-volume), bisa sama seperti SECRET_NAME

Lihat setelan secret

Untuk melihat setelan secret saat ini untuk layanan Cloud Run Anda:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik layanan yang Anda minati untuk membuka halaman Detail layanan.

  3. Klik tab Revisi.

  4. Pada panel detail di sebelah kanan, setelan secret dicantumkan di bagian tab Container.

gcloud

  1. Gunakan perintah berikut:

    gcloud run services describe SERVICE
  2. Temukan setelan secret dalam konfigurasi yang ditampilkan.

Menghapus secret dari layanan

Anda dapat menghapus secret dari layanan menggunakan konsol Google Cloud atau gcloud CLI:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Pilih layanan Anda dari daftar, lalu klik Edit dan deploy revisi baru.

  3. Klik tab Container.

  4. Untuk menghapus secret yang dipasang sebagai volume, pilih tab Volume mount, dan arahkan kursor ke secret yang ingin Anda hapus, lalu klik Hapus.

  5. Untuk menghapus secret yang diekspos sebagai variabel lingkungan, pilih tab Variables and secrets, dan tahan pointer di atas secret yang ingin Anda hapus, lalu klik Delete.

  6. Klik Deploy.

gcloud

Anda dapat menghapus semua secret dari layanan atau menentukan satu atau beberapa secret yang akan dihapus:

  • Untuk menghapus semua secret, jalankan perintah berikut:

    gcloud run deploy SERVICE --image IMAGE_URL \
    --clear-secrets
    

    Ganti:

    • SERVICE dengan nama layanan Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
  • Untuk menentukan daftar secret yang akan dihapus, gunakan flag --remove-secrets. Perintah berikut memperbarui satu secret yang dipasang sebagai volume dan secret lain yang diekspos sebagai variabel lingkungan.

    gcloud run deploy SERVICE --image IMAGE_URL \
    --remove-secrets=ENV_VAR_NAME,SECRET_FILE_PATH
    

    Ganti:

    • SERVICE dengan nama layanan Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • ENV_VAR_NAME: Nama variabel lingkungan.
    • SECRET_FILE_PATH: Jalur lengkap secret. Misalnya, /mnt/secrets/primary/latest, dengan /mnt/secrets/primary/ sebagai jalur pemasangan dan latest sebagai jalur secret. Anda juga dapat menentukan jalur pemasangan dan secret secara terpisah:

          --set-secrets MOUNT_PATH:SECRET_PATH=SECRET:VERSION
      

Menggunakan secret dalam kode Anda

Untuk mengetahui contoh cara mengakses secret dalam kode Anda sebagai variabel lingkungan, lihat tutorial tentang autentikasi pengguna akhir, terutama bagian Menangani konfigurasi sensitif dengan Secret Manager.

Jalur dan batasan yang tidak diizinkan

Cloud Run tidak mengizinkan Anda memasang secrets di /dev, /proc, dan /sys, atau di subdirektorinya.

Jika Anda memasang secret pada /tmp dan Anda menggunakan lingkungan eksekusi generasi pertama, lihat masalah umum di pemasangan secret pada /tmp.

Cloud Run tidak mengizinkan Anda memasang beberapa secret di jalur yang sama karena dua penyangga volume tidak dapat dipasang di lokasi yang sama.

Mengganti direktori

Jika secret dipasang sebagai volume di Cloud Run, dan direktori terakhir di jalur pemasangan volume sudah ada, file atau folder apa pun di direktori yang ada tidak dapat diakses.

Misalnya, jika secret bernama my-secret dipasang ke jalur /etc/app_data, semua konten di dalam direktori app_data akan ditulis ulang, dan satu-satunya file yang terlihat adalah /etc/app_data/my-secret.

Untuk menghindari menimpa file di direktori yang ada, buat direktori baru untuk memasang secret, misalnya, /etc/app_data/secrets, sehingga jalur mount untuk secret adalah /etc/app_data/secrets/my-secret.