Mengelola akses hak istimewa just-in-time ke project

Last reviewed 2024-01-04 UTC

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 Just-in-Time Access 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:

    Screenshot dari aplikasi Just-In-Time Access yang menampilkan 2 peran yang memenuhi syarat dan 1 peran yang diaktifkan.

    Kemudian, mereka dapat mengaktifkan satu atau beberapa peran dan memberikan justifikasi untuk mendapatkan akses:

    Screenshot dari aplikasi Just-In-Time Access yang menampilkan formulir untuk memasukkan justifikasi.

    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.

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  2. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

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

  1. Pada konsol Google Cloud, beralihlah ke project Anda dan aktifkan API yang diperlukan:

    App Engine

    Enable the Inventaris Aset Cloud, Resource Manager, Identity-Aware Proxy, Container Registry, Cloud Build, Pengelolaan Akses dan Identitas, serta Direktori APIs.

    Enable the APIs

    Cloud Run

    Enable the Inventaris Aset Cloud, Resource Manager, Identity-Aware Proxy, Container Registry, Cloud Run, Compute Engine, Pengelolaan Akses dan Identitas, serta Direktori APIs.

    Enable the APIs

  2. Buka Cloud Shell.

    Buka Cloud Shell

  3. Tetapkan variabel lingkungan untuk memuat project IDAnda:

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project Anda.

  4. 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)")
    
  5. 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 ini menggunakan izin untuk membuat token agar dapat mengakses Directory API dan, secara opsional, untuk menangani alur kerja persetujuan banyak pihak.

Memberikan izin aplikasi Akses Tepat Waktu untuk mengelola binding IAM

Sekarang Anda memberikan peran Admin IAM Project 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 memiliki hak istimewa tinggi, Anda harus membatasi akses ke akun layanan aplikasi dan 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 hal berikut:

  1. Berikan peran Project IAM Admin (roles/resourcemanager.projectIamAdmin) dan peran Cloud Asset Viewer (roles/cloudasset.viewer) ke bagian dari hierarki resource yang ingin Anda kelola akses hak istimewa tepat waktu untuknya:

    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:

  1. Buka konsol Google Admin dan login sebagai pengguna admin super.

  2. Buka Akun > Peran Admin:

    Buka Peran Admin

  3. Klik Pembaca Grup > Admin.

  4. Klik Tetapkan akun layanan.

  5. Masukkan alamat email berikut:

    jitaccess@PROJECT_ID.iam.gserviceaccount.com
    

    Ganti PROJECT_ID dengan ID project Google Cloud Anda.

  6. Klik Tambahkan.

  7. Klik Tetapkan peran.

Mencari ID pelanggan akun Cloud Identity atau Google Workspace Anda

Untuk mengevaluasi keanggotaan grup menggunakan Directory API, aplikasi Akses Tepat Waktu (Just-In-Time Access) memerlukan ID pelanggan akun Cloud Identity atau Google Workspace Anda. Untuk mencari ID ini, lakukan hal berikut:

  1. Di konsol Google Admin, buka Akun > Setelan akun:

    Buka Setelan akun

  2. Salin ID pelanggan akun Anda. ID pelanggan diawali dengan C.

    Anda memerlukan ID pelanggan di langkah berikutnya.

  3. 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.

  1. Di Cloud Shell, tetapkan variabel lingkungan agar 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.

  2. Buat aplikasi App Engine:

    gcloud app create --region LOCATION
    

    Ganti LOCATION dengan lokasi App Engine yang didukung.

  3. Clone repositori GitHub dan beralih ke cabang latest:

    git clone https://github.com/GoogleCloudPlatform/jit-access.git
    cd jit-access/sources
    git checkout latest
    
  4. 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 yang terkait.

  5. 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.

  1. Di Cloud Shell, tetapkan variabel lingkungan agar 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.

  2. Pilih region untuk men-deploy:

    gcloud config set run/region REGION
    

    Ganti REGION dengan region yang mendukung Cloud Run.

  3. 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.

  4. Clone repositori GitHub dan beralih ke cabang latest:

    git clone https://github.com/GoogleCloudPlatform/jit-access.git
    cd jit-access/sources
    git checkout latest
    
  5. 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
    
  6. 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 yang terkait.

  7. 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:

  1. Cadangkan alamat IP eksternal statis untuk load balancer:

    gcloud compute addresses create jitaccess-ip --global
    
  2. 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, misalnya jitaccess.example.com.

  3. Cari alamat IP load balancer:

    gcloud compute addresses describe jitaccess-ip \
      --global \
      --format=value\(address\)
    
  4. 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.

  5. 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)
    
  6. 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.

  1. 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)
    
  2. Pada konsol Google Cloud, buka Keamanan > Identity-Aware Proxy.

    Buka IAP

  3. 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.

  1. Pada konsol Google Cloud, buka IAM & Admin > IAM.

    Buka IAM

  2. Klik Berikan Akses lalu tetapkan nilai berikut:

    1. Pada daftar utama, pilih pengguna, grup, atau domain.
    2. 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.

  3. Klik Save.

Diperlukan waktu beberapa menit hingga binding peran diterapkan.

App Engine

Konfigurasi IAP sekarang sudah selesai.

Cloud Run

Untuk menyelesaikan konfigurasi IAP, berikan peran Cloud Run Invoker (roles/run.invoker) ke 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.iam.gserviceaccount.com" \
  --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.

  1. Pada konsol Google Cloud, gunakan daftar project untuk memilih project yang merupakan bagian dari hierarki resource yang dikelola oleh aplikasi Just-In-Time Access.
  2. Pada halaman IAM, klik Berikan akses.
  3. Masukkan alamat email pengguna Cloud Identity atau Google Workspace kedua Anda, lalu pilih peran seperti Project > Browser.
  4. Klik Tambahkan kondisi.
  5. Masukkan judul seperti Eligible for JIT access.
  6. Pilih Editor kondisi, lalu masukkan ekspresi CEL berikut:

    has({}.jitAccessConstraint)
    
  7. Simpan perubahan Anda.

Mengaktifkan akses

Sekarang Anda dapat mengalihkan pengguna dan meminta akses sementara ke resource.

  1. Buka jendela browser samaran dan buka URL aplikasi Just-In-Time Access yang Anda catat sebelumnya.
  2. Login sebagai pengguna yang telah Anda beri akses yang memenuhi syarat.
  3. Pada aplikasi Just-In-Time Access, pilih peran dan resource yang ingin Anda aktifkan aksesnya.
  4. 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.

  1. Pada konsol Google Cloud, buka Logging > Logs Explorer.

    Buka Logs Explorer

  2. Setel Tampilkan kueri untuk diaktifkan.

  3. Masukkan kueri berikut:

    labels.event="api.activateRole"
    
  4. Klik Jalankan kueri.

    Outputnya mirip dengan hal 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.

  1. Beralih ke project Anda di konsol Google Cloud, lalu buka Cloud Shell.

    Buka Cloud Shell

  2. Tetapkan variabel lingkungan untuk memuat project IDAnda:

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project Anda.

  3. Clone repositori GitHub dan beralih ke cabang latest:

    git clone https://github.com/GoogleCloudPlatform/jit-access.git
    cd jit-access/sources
    git checkout latest
    
  4. 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.

  5. Jika Anda ingin membuat perubahan pada konfigurasi, edit file app.yaml. Untuk mengetahui daftar setelan, lihat halaman Configuration options di repositori GitHub yang terkait.

  6. 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 selanjutnya