Dokumen ini menjelaskan cara menggunakan alat open source untuk menerapkan akses hak istimewa just-in-time ke project Google Cloud. Akses hak istimewa just-in-time memungkinkan Anda memberikan akses sementara ke project untuk sekumpulan pengguna terbatas hanya jika akses tersebut diperlukan.
Dokumen ini ditujukan bagi administrator yang mengelola akses pengguna ke resource Google Cloud. Anda dianggap sudah memahami Google Cloud, Identity and Access Management (IAM), dan berbagai konsep terkait.
Ringkasan pengelolaan akses hak istimewa just-in-time
Jika Anda mengikuti prinsip hak istimewa terendah, Anda memberi pengguna akses yang cukup sehingga mereka dapat melakukan aktivitas sehari-hari, tetapi tidak dapat melakukan aktivitas yang lebih dari itu. Mengikuti prinsip ini membantu Anda mengurangi risiko. Namun, hal ini dapat menimbulkan hambatan bagi pengguna saat mereka terkadang perlu melakukan tindakan yang memiliki hak istimewa—misalnya, untuk menangani insiden yang tidak terduga. Contohnya mencakup pemecahan masalah pada sistem produksi atau pemecahan masalah yang melibatkan data sensitif.
Salah satu cara untuk mengatasi masalah ini adalah dengan memberikan akses hak istimewa just-in-time—yaitu, memberikan akses hak istimewa hanya sesuai kebutuhan. Ide utama dari pengelolaan akses hak istimewa just-in-time adalah membedakan antara akses permanen dan akses yang memenuhi syarat:
- Akses permanen berlaku hingga Anda mencabutnya. Dengan mengikuti prinsip hak istimewa terendah, sebaiknya batasi akses permanen dan hanya berikan kepada segelintir pengguna yang harus memilikinya.
- Akses yang memenuhi syarat tidak langsung diterapkan. Sebagai gantinya, pengguna yang telah diberi akses yang memenuhi syarat ke project harus secara eksplisit mengaktifkan akses tersebut sebelum mereka dapat mengakses project. Mereka juga harus memberikan justifikasi atas tindakan tersebut. Setelah akses pengguna diaktifkan, akses tersebut akan otomatis berakhir setelah beberapa saat.
Menggunakan pengelolaan akses hak istimewa just-in-time dapat membantu Anda melakukan hal berikut:
- Mengurangi risiko seseorang yang tidak sengaja mengubah atau menghapus resource. Misalnya, jika pengguna memiliki akses hak istimewa hanya saat diperlukan, hal ini akan membantu mencegah mereka menjalankan skrip di lain waktu yang secara tidak sengaja memengaruhi resource yang seharusnya tidak dapat mereka ubah.
- Membuat jejak audit yang menunjukkan alasan hak istimewa diaktifkan.
- Melakukan audit dan peninjauan untuk menganalisis aktivitas sebelumnya.
Menggunakan Akses Tepat Waktu untuk menerapkan akses hak istimewa
Just-In-Time Access adalah aplikasi open source yang dirancang untuk berjalan di App Engine atau Cloud Run, dan memungkinkan Anda menerapkan akses hak istimewa just-in-time ke resource Google Cloud. Aplikasi ini memungkinkan administrator, pengguna, dan auditor melakukan tugas-tugas berikut:
Administrator dapat memberikan peran kepada pengguna atau grup dan membuat peran tersebut memenuhi syarat dengan menambahkan kondisi IAM:
has({}.jitAccessConstraint)
Pengguna dapat mencari project dan peran yang memenuhi syarat untuk diakses menggunakan aplikasi Just-In-Time Access.
Screenshot berikut dari aplikasi Just-In-Time Access menampilkan daftar peran yang memenuhi syarat untuk pengguna dalam sebuah project:
Kemudian, mereka dapat mengaktifkan satu atau beberapa peran dan memberikan justifikasi untuk mendapatkan akses:
Setelah pengguna mengaktifkan peran, Just-In-Time Access memberi pengguna akses sementara ke project tersebut.
Auditor dapat menggunakan Cloud Logging untuk meninjau kapan dan mengapa peran yang memenuhi syarat diaktifkan oleh pengguna.
Untuk melindungi aplikasi dari akses tidak sah, aplikasi Just-In-Time Access hanya dapat diakses melalui Identity-Aware Proxy (IAP). Dengan IAP, administrator dapat mengontrol pengguna mana yang harus diizinkan untuk mengakses Just-In-Time Access, dan kondisi tambahan yang harus dipenuhi pengguna tersebut untuk mendapatkan akses ini.
Sebelum memulai
Sebelum men-deploy aplikasi Just-In-Time Access, Anda harus memutuskan bagian mana dari hierarki resource yang ingin Anda kelola akses hak istimewa just-in-timenya. Anda dapat mengelola akses untuk resource berikut:
- Satu project
- Folder yang berisi beberapa project
- Semua project organisasi Anda
Untuk menyelesaikan deployment, Anda memerlukan hal berikut:
- Akses admin super ke akun Cloud Identity atau Google Workspace yang sesuai dengan organisasi Google Cloud yang Anda gunakan.
- Izin untuk mengubah kebijakan IAM project, folder, atau organisasi yang ingin Anda kelola menggunakan Akses Tepat Waktu.
- Pengguna Cloud Identity atau Google Workspace kedua yang dapat Anda gunakan untuk menguji akses.
Anda juga memerlukan project Google Cloud untuk men-deploy aplikasi Just-In-Time Access.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Men-deploy Just-in-Time Access
Bagian ini menjelaskan cara men-deploy aplikasi Just-In-Time Access ke App Engine atau Cloud Run.
Men-deploy aplikasi Just-In-Time Access ke Cloud Run memerlukan konfigurasi yang lebih kompleks daripada men-deploy aplikasi ke App Engine. Oleh karena itu, sebaiknya gunakan App Engine, kecuali jika Anda men-deploy di region yang tidak mendukung App Engine, atau jika Anda tidak dapat menggunakan App Engine karena alasan lain.
Kode untuk Just-In-Time Access ada di repositori GitHub.
Bagian ini mengasumsikan bahwa Anda adalah seorang administrator.
Mengonfigurasi project Google Cloud Anda
Pada konsol Google Cloud, beralihlah ke project Anda dan aktifkan API yang diperlukan:
App Engine
Enable the Cloud Asset Inventory, Resource Manager, Identity-Aware Proxy, Container Registry, Cloud Build, Identity and Access Management, and Directory APIs.
Cloud Run
Enable the Cloud Asset Inventory, Resource Manager, Identity-Aware Proxy, Container Registry, Cloud Run, Compute Engine, Identity and Access Management, and Directory APIs.
Buka Cloud Shell.
Tetapkan variabel lingkungan untuk memuat project IDAnda:
gcloud config set project PROJECT_ID
Ganti PROJECT_ID dengan ID project Anda.
Buat akun layanan untuk aplikasi Just-in-Time Access:
SERVICE_ACCOUNT=$(gcloud iam service-accounts create jitaccess --display-name "Just-In-Time Access" --format "value(email)")
Izinkan aplikasi membuat token menggunakan akun layanannya dengan memberinya peran Service Account Token Creator (
roles/iam.serviceAccountTokenCreator
):gcloud iam service-accounts add-iam-policy-binding $SERVICE_ACCOUNT \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/iam.serviceAccountTokenCreator"
Aplikasi menggunakan izin untuk membuat token guna mengakses Directory API dan, secara opsional, untuk menangani alur kerja persetujuan multi-pihak.
Memberikan izin aplikasi Akses Tepat Waktu untuk mengelola binding IAM
Sekarang Anda memberikan peran Project IAM Admin ke akun layanan aplikasi. Peran ini memungkinkan aplikasi Just-In-Time Access membuat binding IAM sementara jika harus memberikan akses just-in-time.
Karena peran Project IAM Admin sangat istimewa, Anda harus membatasi akses ke akun layanan aplikasi dan ke project yang memuatnya.
Gunakan panduan berikut:
- Batasi jumlah pengguna yang dapat mengakses project, dan jangan berikan peran Pemilik atau Editor kepada pengguna mana pun.
- Batasi jumlah pengguna yang dapat meniru identitas akun layanan. Pengguna yang seharusnya dapat melakukan peniruan identitas ini termasuk yang memiliki peran Pengguna Akun Layanan atau peran Pembuat Token Akun Layanan.
Untuk memberikan peran Project IAM Admin ke akun layanan, lakukan tindakan berikut:
Berikan peran Project IAM Admin (
roles/resourcemanager.projectIamAdmin
) dan Cloud Asset Viewer (roles/cloudasset.viewer
) ke bagian hierarki resource yang ingin Anda kelola akses hak istimewa just-in-timenya:Project
SCOPE_ID=RESOURCE_PROJECT_ID SCOPE_TYPE=projects gcloud projects add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/resourcemanager.projectIamAdmin" \ --condition None gcloud projects add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/cloudasset.viewer" \ --condition None
Ganti RESOURCE_PROJECT_ID dengan ID project Google Cloud yang ingin Anda kelola aksesnya. Project ini berbeda dari project yang Anda gunakan untuk men-deploy Just-In-Time Access.
Folder
SCOPE_ID=RESOURCE_FOLDER_ID SCOPE_TYPE=folders gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/resourcemanager.projectIamAdmin" \ --condition None gcloud resource-manager folders add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/cloudasset.viewer" \ --condition None
Ganti RESOURCE_FOLDER_ID dengan ID folder yang berisi project yang ingin Anda kelola aksesnya.
Organisasi
SCOPE_ID=ORGANIZATION_ID SCOPE_TYPE=organizations gcloud organizations add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/resourcemanager.projectIamAdmin" \ --condition None gcloud organizations add-iam-policy-binding $SCOPE_ID \ --member "serviceAccount:$SERVICE_ACCOUNT" \ --role "roles/cloudasset.viewer" \ --condition None
Ganti ORGANIZATION_ID dengan ID organisasi Anda.
Memberikan akses untuk mengizinkan aplikasi menyelesaikan keanggotaan grup
Aplikasi Just-In-Time Access memungkinkan Anda memberikan akses yang memenuhi syarat kepada pengguna tertentu atau ke seluruh grup. Untuk mengevaluasi keanggotaan grup, aplikasi harus diizinkan untuk membaca informasi keanggotaan grup dari akun Cloud Identity atau Google Workspace Anda.
Untuk memberikan izin akses akun layanan aplikasi agar dapat membaca keanggotaan grup, lakukan hal berikut:
Buka konsol Google Admin dan login sebagai pengguna admin super.
Buka Akun > Peran Admin:
Klik Pembaca Grup > Admin.
Klik Tetapkan akun layanan.
Masukkan alamat email berikut:
jitaccess@PROJECT_ID.
Ganti PROJECT_ID dengan ID project Google Cloud Anda.
Klik Tambahkan.
Klik Tetapkan peran.
Mencari ID pelanggan akun Cloud Identity atau Google Workspace Anda
Untuk mengevaluasi keanggotaan grup menggunakan Directory API, aplikasi Just-In-Time Access memerlukan ID pelanggan akun Cloud Identity atau Google Workspace Anda. Untuk mencari ID ini, lakukan hal berikut:
Di konsol Google Admin, buka Akun > Setelan akun:
Salin ID pelanggan akun Anda. ID pelanggan dimulai dengan
C
.Anda memerlukan ID pelanggan di langkah berikutnya.
Tutup konsol Admin.
Men-deploy aplikasi
Sekarang Anda siap untuk men-deploy aplikasi Just-In-Time Access ke App Engine atau Cloud Run.
App Engine
Untuk men-deploy aplikasi Just-In-Time Access ke App Engine, Anda perlu melakukan langkah-langkah berikut.
Di Cloud Shell, tetapkan variabel lingkungan untuk berisi ID pelanggan akun Cloud Identity atau Google Workspace Anda:
ACCOUNT_CUSTOMER_ID=CUSTOMER_ID
Ganti CUSTOMER_ID dengan ID pelanggan yang Anda cari sebelumnya.
Buat aplikasi App Engine:
gcloud app create --region LOCATION
Ganti LOCATION dengan lokasi App Engine yang didukung.
Berikan akun layanan default App Engine peran Artifact Registry Create-on-push Writer (
roles/artifactregistry.createOnPushWriter
) dan Storage Admin (roles/storage.admin
) untuk mengizinkan App Engine menggunakan Artifact Registry.PROJECT_ID=$(gcloud config get-value core/project) gcloud projects add-iam-policy-binding $PROJECT_ID \ --member "serviceAccount:$PROJECT_ID@" \ --role "roles/artifactregistry.createOnPushWriter" \ --condition None gcloud projects add-iam-policy-binding $PROJECT_ID\ --member "serviceAccount:$PROJECT_ID@" \ --role "roles/storage.admin" \ --condition None
Clone repositori GitHub dan beralih ke cabang
latest
:git clone https://github.com/GoogleCloudPlatform/jit-groups.git cd jit-access/sources git checkout latest
Buat file konfigurasi untuk aplikasi Just-In-Time Access:
cat << EOF > app.yaml runtime: java17 instance_class: F2 service_account: $SERVICE_ACCOUNT env_variables: RESOURCE_SCOPE: $SCOPE_TYPE/$SCOPE_ID RESOURCE_CATALOG: AssetInventory RESOURCE_CUSTOMER_ID: $ACCOUNT_CUSTOMER_ID ACTIVATION_TIMEOUT: 60 JUSTIFICATION_HINT: "Bug or case number" JUSTIFICATION_PATTERN: ".*" EOF
Dalam file konfigurasi ini, Anda dapat menyesuaikan nilai variabel. Untuk mengetahui daftar setelan, lihat halaman Opsi konfigurasi di repositori GitHub terkait.
Deploy aplikasi:
gcloud app deploy --appyaml app.yaml
Catat
target url
di output. Ini akan menjadi URL publik dari aplikasi Just-in-Time Access.Jika Anda melihat pesan error
NOT_FOUND: Unable to retrieve P4SA
, coba lagi perintah tersebut.
Cloud Run
Untuk men-deploy aplikasi Just-In-Time Access ke Cloud Run, Anda perlu melakukan langkah-langkah berikut.
Di Cloud Shell, tetapkan variabel lingkungan untuk berisi ID pelanggan akun Cloud Identity atau Google Workspace Anda:
ACCOUNT_CUSTOMER_ID=CUSTOMER_ID
Ganti CUSTOMER_ID dengan ID pelanggan yang Anda cari sebelumnya.
Pilih region tujuan deployment:
gcloud config set run/region REGION
Ganti REGION dengan region yang mendukung Cloud Run.
Buat layanan backend:
gcloud compute backend-services create jitaccess-backend \ --load-balancing-scheme=EXTERNAL \ --global
Kemudian, Anda dapat menggunakan layanan backend ini untuk mengonfigurasi load balancer dan IAP.
Clone repositori GitHub dan beralih ke cabang
latest
:git clone https://github.com/GoogleCloudPlatform/jit-groups.git cd jit-access/sources git checkout latest
Bangun aplikasi dan kirim image container ke Container Registry:
PROJECT_ID=$(gcloud config get-value core/project) docker build -t gcr.io/$PROJECT_ID/jitaccess:latest . docker push gcr.io/$PROJECT_ID/jitaccess:latest
Buat file konfigurasi untuk aplikasi Just-In-Time Access:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format 'value(projectNumber)') REGION=$(gcloud config get-value run/region) IAP_BACKEND_SERVICE_ID=$(gcloud compute backend-services describe jitaccess-backend --global --format 'value(id)') cat << EOF > app.yaml apiVersion: serving.knative.dev/v1 kind: Service metadata: name: jitaccess namespace: $PROJECT_NUMBER labels: cloud.googleapis.com/location: $REGION annotations: run.googleapis.com/ingress: internal-and-cloud-load-balancing spec: template: spec: serviceAccountName: $SERVICE_ACCOUNT containers: - image: gcr.io/$PROJECT_ID/jitaccess:latest env: - name: RESOURCE_SCOPE value: "$SCOPE_TYPE/$SCOPE_ID" - name: RESOURCE_CATALOG value: "AssetInventory" - name: RESOURCE_CUSTOMER_ID value: "$ACCOUNT_CUSTOMER_ID" - name: ACTIVATION_TIMEOUT value: "60" - name: JUSTIFICATION_HINT value: "Bug or case number" - name: JUSTIFICATION_PATTERN value: ".*" - name: IAP_BACKEND_SERVICE_ID value: "$IAP_BACKEND_SERVICE_ID" EOF
Dalam file konfigurasi ini, Anda dapat menyesuaikan nilai variabel. Untuk mengetahui daftar setelan, lihat halaman Opsi konfigurasi di repositori GitHub terkait.
Deploy aplikasi:
gcloud run services replace app.yaml
Mengonfigurasi load balancer
Sekarang Anda mengonfigurasi load balancer untuk aplikasi Just-In-Time Access.
App Engine
App Engine akan otomatis mengonfigurasi load balancer untuk Anda.
Cloud Run
Konfigurasikan load balancer HTTPS untuk layanan Cloud Run Anda:
Cadangkan alamat IP eksternal statis untuk load balancer:
gcloud compute addresses create jitaccess-ip --global
Buat sertifikat SSL terkelola untuk load balancer:
gcloud compute ssl-certificates create jitaccess \ --domains PUBLIC_FQDN \ --global
Dimana
PUBLIC_FQDN
adalah nama domain publik yang sepenuhnya memenuhi syarat (FQDN) yang ingin Anda gunakan, misalnyajitaccess.example.com
.Cari alamat IP load balancer:
gcloud compute addresses describe jitaccess-ip \ --global \ --format=value\(address\)
Buat data DNS
A
di zona DNS publik Anda yang mengarah ke alamat IP load balancer. Nama data DNS yang sepenuhnya memenuhi syarat harus sesuai dengan nama yang Anda gunakan untuk sertifikat SSL.Buat grup endpoint jaringan serverless untuk layanan Cloud Run dan hubungkan ke layanan backend:
gcloud compute network-endpoint-groups create jitaccess \ --region $(gcloud config get-value run/region) \ --network-endpoint-type=serverless \ --cloud-run-service jitaccess gcloud compute backend-services add-backend jitaccess-backend \ --global \ --network-endpoint-group jitaccess \ --network-endpoint-group-region $(gcloud config get-value run/region)
Buat frontend load balancer yang menggunakan alamat IP eksternal dan meneruskan traffic ke layanan backend:
gcloud compute url-maps create jitaccess \ --default-service jitaccess-backend gcloud compute target-https-proxies create jitaccess-proxy \ --ssl-certificates jitaccess \ --url-map jitaccess gcloud compute forwarding-rules create jitaccess-https \ --load-balancing-scheme EXTERNAL \ --address jitaccess-ip \ --target-https-proxy jitaccess-proxy \ --global \ --ports=443
Mengonfigurasi Identity-Aware Proxy
Sekarang Anda mengonfigurasi IAP untuk aplikasi Just-In-Time Access.
Pada Cloud Shell, konfigurasikan layar izin OAuth:
gcloud iap oauth-brands create \ --application_title "Just-In-Time Access" \ --support_email=$(gcloud config get core/account)
Pada konsol Google Cloud, buka Keamanan > Identity-Aware Proxy.
Setel IAP untuk diaktifkan.
Sekarang, Anda harus menentukan pengguna yang diizinkan untuk mengakses aplikasi Just-In-Time Access. Anda dapat memberikan akses ke pengguna individu, grup, atau seluruh domain.
Pada konsol Google Cloud, buka IAM & Admin > IAM.
Klik Berikan Akses lalu tetapkan nilai berikut:
- Pada daftar utama, pilih pengguna, grup, atau domain.
- Dalam daftar peran, pilih pengguna aplikasi web yang diamankan oleh IAP.
Peran pengguna aplikasi web yang diamankan oleh IAP memungkinkan pengguna membuka aplikasi Just-In-Time Access, tetapi peran tersebut belum memberi mereka akses ke resource tambahan apa pun.
Klik Simpan.
Diperlukan waktu beberapa menit hingga binding peran diterapkan.
App Engine
Konfigurasi IAP kini telah selesai.
Cloud Run
Untuk menyelesaikan konfigurasi IAP, berikan peran Cloud Run Invoker (roles/run.invoker
) kepada
agen layanan yang digunakan oleh IAP:
PROJECT_NUMBER=$(gcloud projects list \ --filter $(gcloud config get-value project) \ --format "value(PROJECT_NUMBER)") gcloud projects add-iam-policy-binding $(gcloud config get-value core/project) \ --member "serviceAccount:service-$PROJECT_NUMBER@gcp-sa-iap." \ --role "roles/run.invoker"
Menguji Akses Tepat Waktu
Sekarang Anda dapat menguji proses pemberian akses yang memenuhi syarat dan proses penggunaan aplikasi Just-In-Time Access untuk mengaktifkan akses yang memenuhi syarat.
Memberikan akses yang memenuhi syarat
Untuk memulai, berikan akses yang memenuhi syarat ke pengguna Cloud Identity atau Google Workspace kedua.
- Pada konsol Google Cloud, gunakan daftar project untuk memilih project yang merupakan bagian dari hierarki resource yang dikelola oleh aplikasi Just-In-Time Access.
- Pada halaman IAM, klik Berikan akses.
- Masukkan alamat email pengguna Cloud Identity atau Google Workspace kedua Anda, lalu pilih peran seperti Project > Browser.
- Klik Tambahkan kondisi.
- Masukkan judul seperti
Eligible for JIT access
. Pilih Editor kondisi, lalu masukkan ekspresi CEL berikut:
has({}.jitAccessConstraint)
Simpan perubahan Anda.
Mengaktifkan akses
Sekarang Anda dapat mengalihkan pengguna dan meminta akses sementara ke resource.
- Buka jendela browser samaran dan buka URL aplikasi Just-In-Time Access yang Anda catat sebelumnya.
- Login sebagai pengguna yang telah Anda beri akses yang memenuhi syarat.
- Pada aplikasi Just-In-Time Access, pilih peran dan resource yang ingin Anda aktifkan aksesnya.
Masukkan justifikasi seperti
testing
, lalu klik Minta akses.Pada halaman berikutnya, perhatikan bahwa akses Anda telah diaktifkan untuk sementara.
Menganalisis log
Sekarang Anda dapat beralih kembali ke pengguna administratif dan meninjau log.
Pada konsol Google Cloud, buka Logging > Logs Explorer.
Setel Tampilkan kueri untuk diaktifkan.
Masukkan kueri berikut:
labels.event="api.activateRole"
Klik Jalankan kueri.
Output-nya mirip dengan yang berikut ini:
{ "textPayload": "User EMAIL activated role 'ROLE' on '//cloudresourcemanager.googleapis.com/projects/PROJECT_ID' for themselves", "severity": "INFO", "labels": { "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "event": "api.activateRole", "role": "ROLE", "clone_id": "00c6...", "user": "EMAIL", "justification": "testing", ... }, ... }
Perhatikan bahwa data log telah dibuat untuk setiap peran yang Anda aktifkan. Data log berisi sekumpulan label yang dapat Anda gunakan untuk membuat filter kustom.
Mengupgrade Just-in-Time Access
Bagian ini menjelaskan cara mengupgrade deployment Just-In-Time Access yang sudah ada untuk menggunakan versi aplikasi yang lebih baru, atau menggunakan konfigurasi yang berbeda.
Bagian ini mengasumsikan bahwa Anda adalah seorang administrator.
Beralih ke project Anda di konsol Google Cloud, lalu buka Cloud Shell.
Tetapkan variabel lingkungan untuk memuat project IDAnda:
gcloud config set project PROJECT_ID
Ganti PROJECT_ID dengan ID project Anda.
Clone repositori GitHub dan beralih ke cabang
latest
:git clone https://github.com/GoogleCloudPlatform/jit-groups.git cd jit-access/sources git checkout latest
Download file konfigurasi yang Anda gunakan sebelumnya untuk men-deploy aplikasi dan simpan ke file
app.yaml
:App Engine
APPENGINE_VERSION=$(gcloud app versions list --service default --hide-no-traffic --format "value(version.id)") APPENGINE_APPYAML_URL=$(gcloud app versions describe $APPENGINE_VERSION --service default --format "value(deployment.files.'app.yaml'.sourceUrl)") curl -H "Authorization: Bearer $(gcloud auth print-access-token)" $APPENGINE_APPYAML_URL -o app.yaml cat app.yaml
Jika download file
app.yaml
gagal, Anda dapat mendownload konfigurasi saat ini di konsol Google Cloud.Cloud Run
gcloud config set run/region REGION gcloud run services describe jitaccess --format yaml > app.yaml
Ganti
REGION
dengan region yang berisi deployment Cloud Run yang sudah ada.Jika Anda ingin membuat perubahan pada konfigurasi, edit file
app.yaml
. Untuk mengetahui daftar setelan, lihat halaman Opsi konfigurasi di repositori GitHub terkait.Deploy aplikasi:
App Engine
sed -i 's/java11/java17/g' app.yaml gcloud app deploy --appyaml app.yaml
Cloud Run
PROJECT_ID=$(gcloud config get-value core/project) docker build -t gcr.io/$PROJECT_ID/jitaccess:latest . docker push gcr.io/$PROJECT_ID/jitaccess:latest IMAGE=$(docker inspect --format='{{index .RepoDigests 0}}' gcr.io/$PROJECT_ID/jitaccess) sed -i "s|image:.*|image: $IMAGE|g" app.yaml gcloud run services replace app.yaml
Langkah berikutnya
- Mengonfigurasi persetujuan banyak pihak.
- Pelajari cara menggunakan akses kontekstual untuk mengamankan akses ke Just-In-Time Access.
- Baca selengkapnya tentang kondisi IAM.
- Konfigurasikan domain kustom untuk aplikasi Just-In-Time Access.
- Untuk mengetahui lebih banyak tentang arsitektur referensi, diagram, dan praktik terbaik lainnya, jelajahi Pusat Arsitektur Cloud.