Layanan Anda mungkin memerlukan kunci API, sandi, sertifikat, atau informasi sensitif lainnya untuk dependensinya. Untuk Cloud Run, Google merekomendasikan penyimpanan informasi sensitif ini di secret yang Anda buat di Secret Manager.
Buat secret tersedia untuk container Anda dengan salah satu cara berikut:
- Saat Anda memasang setiap secret sebagai volume, Cloud Run akan membuat secret tersedia untuk container sebagai file. Saat membaca volume, Cloud Run selalu mengambil nilai secret dari Secret Manager untuk menggunakan nilai 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
latest
sebagai versi.
Untuk mengetahui informasi selengkapnya, lihat praktik terbaik Secret Manager.
Cara pemeriksaan secret saat deployment dan runtime
Selama deployment layanan, Cloud Run memeriksa semua secret yang Anda gunakan. Pemeriksaan ini memastikan bahwa akun layanan yang menjalankan container memiliki izin untuk mengakses secret ini.
Selama runtime, pada saat instance dimulai:
- Jika secret adalah variabel lingkungan, Cloud Run akan mengambil nilai secret sebelum memulai instance. Jika proses pengambilan secret gagal, instance tidak akan dimulai.
- Jika Anda memasang secret sebagai volume, Cloud Run tidak akan melakukan pemeriksaan apa pun selama startup instance. Namun, jika selama runtime secret tidak dapat diakses, upaya untuk membaca volume yang terpasang akan gagal.
Kepemilikan volume
Kepemilikan volume rahasia Cloud Run berbeda-beda menurut lingkungan eksekusi dan jenis deployment.
Saat Anda memasang volume rahasia, identitas yang memiliki file dan direktori akan berbeda bergantung pada lingkungan eksekusi workload dan apakah deployment terdiri dari satu atau beberapa container.
Di lingkungan eksekusi generasi pertama tempat Anda men-deploy satu container, identitas yang Anda gunakan untuk container memiliki volume secret. Dalam kasus lainnya, root memiliki volume. Hal ini mencakup:
- Lingkungan eksekusi generasi pertama tempat Anda men-deploy banyak container
- Lingkungan generasi kedua
Sebelum memulai
-
Enable the Secret Manager API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - 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 memberi Anda peran IAM berikut:
-
Admin Cloud Run (
roles/run.admin
) pada layanan Cloud Run -
Service Account User (
roles/iam.serviceAccountUser
) pada identitas layanan
Untuk mengizinkan Cloud Run mengakses secret, identitas layanan harus memiliki peran berikut:
- Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor
)
Untuk mengetahui petunjuk tentang 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 konsol, 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
Di konsol Google Cloud , buka Cloud Run:
Pilih Services dari menu, lalu klik Deploy container untuk mengonfigurasi layanan baru. Isi halaman setelan layanan awal, lalu klik Container(s), Volume, Jaringan, Keamanan untuk meluaskan halaman konfigurasi layanan.
Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit dan deploy revisi baru.
Ikuti langkah-langkah untuk memasang secret sebagai volume, atau mengekspos secret sebagai variabel lingkungan.
Untuk mengekspos secret sebagai variabel lingkungan:
- Klik tab Container.
- Di tab Variables and Secrets, klik Reference a secret.
- Di kolom Name 1, masukkan nama variabel lingkungan.
- Dari daftar Secret, pilih secret yang ingin Anda gunakan.
- Dari daftar Version 1, pilih versi secret yang akan direferensikan.
- Klik Selesai.
- Klik Buat atau Deploy.
Untuk memasang secret sebagai volume:
- Klik tab Volumes, lalu pilih Add volume.
- Di daftar Volume type, pilih Secret.
- Di kolom Volume name, masukkan nama atau terima nama default.
- Dari daftar Secret, pilih secret yang ingin Anda gunakan.
- Di kolom Path 1, masukkan nama file yang akan di-mount.
- Dalam daftar Version 1, pilih versi secret yang akan direferensikan. Secara default, versi terbaru akan dipilih. Anda dapat memilih versi tertentu jika menginginkannya.
- Klik Selesai.
- Buka tab Container(s) untuk memasang secret ke container.
- Di tab Volume mounts, klik Mount volume.
- Dari daftar Name 1, pilih nama volume Anda.
- Di kolom Mount path 1, masukkan jalur pemasangan untuk secret ini. Ini adalah direktori tempat semua versi rahasia Anda ditempatkan.
- Klik Selesai.
- 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 kode berikut:
SERVICE
: nama layanan Anda.- IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
PATH
: 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, danpassword
sebagai nama file secret.SECRET_NAME
: nama secret dalam project yang sama—misalnya,mysecret
.VERSION
: versi secret. Gunakanlatest
untuk versi terbaru, atau angka—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 kode berikut:
SERVICE
: nama layanan Anda.- IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. ENV_VAR_NAME
: nama variabel lingkungan yang ingin Anda gunakan dengan secret.SECRET_NAME
: nama secret dalam project yang sama—misalnya,mysecret
.VERSION
: versi secret. Gunakanlatest
untuk versi terbaru, atau angka—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
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
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
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 kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- IMAGE_URL: 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 mengikuti formatLOCATION-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 dengan
SERVICE-
- Hanya berisi huruf kecil, angka, dan
-
- Tidak diakhiri dengan
-
- Tidak melebihi 63 karakter
- Dimulai dengan
Ganti layanan dengan konfigurasinya yang baru menggunakan perintah berikut:
gcloud run services replace service.yaml
Terraform
Buat secret dan versi secret.
Buat akun layanan dan beri akun layanan tersebut akses ke secret:
Secret Manager, secret dapat diakses dari Cloud Run sebagai jalur file yang terpasang atau sebagai variabel lingkungan.
Untuk secret yang dipasang sebagai jalur file, referensikan resource Secret Manager di parameter
volumes
.name
sesuai dengan entri dalam parametervolume_mounts
:Untuk secret yang ditampilkan sebagai variabel lingkungan, referensikan resource Secret Manager dalam parameter
env
:
Mereferensikan secret dari project lain
Untuk mereferensikan secret dari project lain, pastikan akun layanan project Anda memiliki akses ke secret tersebut.
Konsol
Di konsol Google Cloud , buka Cloud Run:
Pilih Services dari menu, lalu klik Deploy container untuk mengonfigurasi layanan baru. Isi halaman setelan layanan awal, lalu klik Container(s), Volume, Jaringan, Keamanan untuk meluaskan halaman konfigurasi layanan.
Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit dan deploy revisi baru.
Ikuti langkah-langkah untuk memasang secret sebagai volume, atau mengekspos secret sebagai variabel lingkungan.
Untuk mengekspos secret sebagai variabel lingkungan:
- Klik tab Container.
- Di tab Variables and Secrets, klik Reference a secret.
- Di kolom Name 1, masukkan nama variabel lingkungan.
- Dari daftar Secret, klik Masukkan secret secara manual.
Masukkan ID resource secret dalam format berikut:
projects/PROJECT_NUMBER/secrets/SECRET_NAME
Ganti kode berikut:
PROJECT_NUMBER dengan Google Cloud nomor project Anda. Untuk petunjuk mendetail tentang cara menemukan nomor project, lihat Membuat dan mengelola project.
SECRET_NAME: Nama secret di Secret Manager.
Dari daftar Version 1, pilih versi secret yang akan direferensikan.
Klik Selesai.
Klik Buat atau Deploy.
Untuk memasang secret sebagai volume:
- Klik tab Volumes, lalu pilih Add volume.
- Di daftar Volume type, pilih Secret.
- Di kolom Volume name, masukkan nama atau terima nama default.
- Dari daftar Secret, klik Masukkan secret secara manual.
Masukkan ID resource secret dalam format berikut:
projects/PROJECT_NUMBER/secrets/SECRET_NAME
Ganti kode berikut:
PROJECT_NUMBER dengan Google Cloud nomor project Anda. Untuk petunjuk mendetail tentang cara menemukan nomor project, lihat Membuat dan mengelola project.
SECRET_NAME: Nama secret di Secret Manager.
Di kolom Path 1, masukkan nama file yang akan di-mount.
Dalam daftar Version 1, pilih versi secret yang akan direferensikan. Secara default, versi terbaru akan dipilih. Anda dapat memilih versi tertentu jika menginginkannya.
Klik Selesai.
Buka tab Container(s) untuk memasang secret ke container.
Di tab Volume mounts, klik Mount volume.
Dari daftar Name 1, pilih nama volume Anda.
Di kolom Mount path 1, masukkan jalur pemasangan untuk secret ini. Ini adalah direktori tempat semua versi rahasia Anda ditempatkan.
Klik Selesai.
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 kode berikut:
SERVICE
: nama layanan Anda.- IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. PATH
: 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, danpassword
sebagai nama file secret.PROJECT_NUMBER
dengan nomor project untuk project tempat secret dibuat.SECRET_NAME
: nama secret—misalnya,mysecret
.VERSION
dengan versi secret. Gunakanlatest
untuk versi terbaru, atau angka—misalnya,2
.
YAML
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.
Untuk secret yang diekspos 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 kode berikut:
SERVICE
: nama layanan Anda.- IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
ENV_VAR
PROJECT_NUMBER
: nomor project untuk project tempat secret dibuat.SECRET_NAME
: nama secret—misalnya,mysecret
.VERSION
: versi secret. Gunakanlatest
untuk versi terbaru, atau angka—misalnya,2
.SECRET_LOOKUP_NAME
: nama apa pun yang memiliki sintaksis nama secret yang valid—misalnya,my-secret
, nama tersebut bisa sama sepertiSECRET_NAME
.
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 kode berikut:
SERVICE
: nama layanan Anda.- IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. PATH
: 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, danpassword
sebagai nama file secret.PROJECT_NUMBER
: nomor project untuk project tempat secret dibuat.SECRET_NAME
: nama secret—misalnya,mysecret
.VERSION
: versi secret. Gunakanlatest
untuk versi terbaru, atau angka—misalnya,2
.SECRET_LOOKUP_NAME
: nama apa pun yang memiliki sintaksis nama secret yang valid—misalnya,my-secret
, nama tersebut bisa sama sepertiSECRET_NAME
.VOLUME_NAME
: nama apa pun—misalnya,my-volume
, bisa sama denganSECRET_NAME
.
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan kode berikut ke resourcegoogle_cloud_run_v2_service
di konfigurasi Terraform Anda:Untuk secret yang diekspos sebagai variabel lingkungan:
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE_NAME"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
env {
name = "SECRET_NAME"
value_source {
secret_key_ref {
secret = "projects/PROJECT_ID/secrets/SECRET_NAME"
version = "VERSION"
}
}
}
}
}
}
Ganti kode berikut:
- SERVICE_NAME: nama tugas Cloud Run Anda.
- REGION: Google Cloud region. Contohnya,
europe-west1
. - IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - SECRET_NAME: nama secret—misalnya
mysecret
. - PROJECT_ID: project ID tempat secret dibuat.
- VERSION: versi secret. Gunakan
latest
untuk versi terbaru, atau angka—misalnya,2
.
Untuk secret yang dipasang sebagai jalur file:
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE_NAME"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
volume_mounts {
name = "VOLUME_NAME"
mount_path = "MOUNT_PATH"
}
}
volumes {
name = "VOLUME_NAME"
secret {
secret = "projects/PROJECT_ID/secrets/SECRET_NAME"
}
}
}
}
Ganti kode berikut:
- SERVICE_NAME: nama tugas Cloud Run Anda.
- REGION dengan region Google Cloud . Contohnya,
europe-west1
. - IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- VOLUME_NAME: nama apa pun—misalnya,
my-volume
, bisa sama denganSECRET_NAME
- MOUNT_PATH: 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, danpassword
sebagai nama file secret. - PROJECT_ID: project ID tempat secret dibuat.
- SECRET_NAME: nama secret—misalnya
mysecret
.
Lihat setelan secret
Untuk melihat setelan secret saat ini untuk layanan Cloud Run Anda:
Konsol
Di konsol Google Cloud , buka Cloud Run:
Klik layanan yang Anda minati untuk membuka halaman Detail layanan.
Klik tab Revisi.
Pada panel detail di sebelah kanan, setelan secret dicantumkan di bagian tab Container.
gcloud
Gunakan perintah berikut:
gcloud run services describe SERVICE
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
Di konsol Google Cloud , buka Cloud Run:
Pilih layanan Anda dari daftar, lalu klik Edit dan deploy revisi baru.
Klik tab Container.
Untuk menghapus secret yang di-mount sebagai volume, pilih tab Pemasangan volume, dan tahan kursor di atas secret yang ingin Anda hapus, lalu klik
Hapus.Untuk menghapus secret yang diekspos sebagai variabel lingkungan, pilih tab Variabel dan secret, lalu tahan kursor di atas secret yang ingin Anda hapus, lalu klik
Hapus.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 kode berikut:
- SERVICE: nama layanan Anda.
- IMAGE_URL: 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 mengikuti formatLOCATION-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 kode berikut:
- SERVICE: nama layanan Anda.
- IMAGE_URL: 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 mengikuti formatLOCATION-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 danlatest
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
Batasan berikut berlaku untuk pemasangan rahasia:
- Cloud Run tidak mengizinkan Anda memasang secret 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, maka file atau folder apa pun di direktori yang ada menjadi tidak dapat diakses.
Misalnya, jika secret bernama my-secret
dipasang ke jalur
/etc/app_data
, semua konten di dalam direktori app_data
akan
ditimpa, dan satu-satunya file yang terlihat adalah /etc/app_data/my-secret
.
Untuk menghindari penimpaan file di direktori yang ada, buat direktori baru untuk
memasang secret, misalnya, /etc/app_data/secrets
, sehingga jalur pemasangan
untuk secret adalah /etc/app_data/secrets/my-secret
.