Mengelola binding akses

Halaman ini menjelaskan cara mengelola binding akses yang ada, yang menentukan cara kebijakan akses diterapkan ke grup pengguna Anda. Anda dapat melihat, mengubah, dan menghapus binding ini sesuai kebutuhan. Binding akses menentukan cara tingkat akses dan kontrol sesi diterapkan ke grup pengguna.

Untuk mengetahui informasi tentang cara membuat binding akses dan detail selengkapnya tentang tingkat akses dan kontrol sesi, lihat Menerapkan kebijakan ke grup pengguna dengan binding akses.

Melihat binding akses

Setelah binding akses dibuat untuk sekelompok pengguna, akses ke Google Cloud konsol dan Google Cloud API akan dikontrol berdasarkan pemenuhan tingkat akses terikat.

Anda dapat melihat detail binding akses yang Anda buat, mengeditnya, atau menghapusnya.

Konsol

  1. Di Google Cloud konsol, buka halaman Access Context Manager.

    Buka Access Context Manager

  2. Jika diminta, pilih sebuah project. Daftar binding akses tercantum di halaman Access Context Manager.

gcloud

  • Untuk melihat semua binding akses, jalankan perintah berikut:

      gcloud access-context-manager cloud-bindings list \
       --organization ORG_ID
    

    ORG_ID: ID organisasi Anda. Jika properti access-context-manager/organization belum ditetapkan, ganti ORG_ID dalam flag --organization opsional dengan ID untuk organisasi yang Anda gunakan saat membuat peran GcpAccessAdmin.

  • Untuk melihat detail binding akses, jalankan perintah berikut:

      gcloud access-context-manager cloud-bindings describe \
      --binding=BINDING_ID
    

    BINDING_ID adalah ID binding akses atau ID yang sepenuhnya memenuhi syarat untuk binding akses.

API

  • Melihat semua binding akses:

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • ORG_ID adalah ID untuk organisasi yang Anda gunakan saat membuat peran GcpAccessAdmin. Jika properti access-context-manager/organization belum ditetapkan, ganti ORG_ID dalam flag --organization opsional dengan ID untuk organisasi yang Anda gunakan saat membuat peran GcpAccessAdmin.

    Metode HTTP dan URL:

    GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Jalankan perintah berikut:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

    PowerShell

    Jalankan perintah berikut:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

    
    {
      "name": string,
      "groupKey": string,
      "accessLevels": [
        string
      ]
      "dryRunAccessLevels": [
      string
      ]
    }
    
    

  • Melihat detail binding akses:

    Metode HTTP dan URL:

    GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Jalankan perintah berikut:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://accesscontextmanager.googleapis.com/v1/BINDING_ID"

    PowerShell

    Jalankan perintah berikut:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

Memperbarui binding akses

Anda dapat memperbarui binding akses untuk melakukan hal berikut:

  • Menambahkan, menghapus, atau mengubah aplikasi yang memiliki kebijakan.
  • Mengubah tingkat akses untuk aplikasi dalam grup pengguna.
  • Menambahkan tingkat akses uji coba baru atau mempromosikan tingkat akses yang ada ke tingkat aktif.

Konsol

  1. Di Google Cloud konsol, buka halaman Access Context Manager.

    Buka Access Context Manager

  2. Jika diminta, pilih sebuah project.

  3. Di halaman Access Context Manager, pilih binding akses, lalu klik Edit untuk memperbaruinya.

Anda tidak dapat memperbarui binding akses dengan tingkat akses uji coba atau kontrol sesi di Google Cloud konsol.

gcloud

  1. Buat file binding YAML.

    gcloud access-context-manager cloud-bindings update
      --binding ACCESS_BINDING
      --binding-file BINDING_FILE_PATH
    [  --level DEFAULT_ACCESS_LEVEL ]
    [  --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL           ]
    [  --session-length=DEFAULT_SESSION_LENGTH                ]
    [  --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD  ]
    

    Ganti kode berikut:

    • ACCESS_BINDING dalam bentuk organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • BINDING_FILE_PATH: Jalur ke file YAML yang berisi skema binding akses. File binding hanya mendukung scopedAccessSettings.
    • DEFAULT_ACCESS_LEVEL: Nama tingkat akses opsional, yang berbentuk accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Ganti POLICY_ID dengan ID kebijakan akses, dan ACCESS_LEVEL_NAME dengan nama tingkat akses.
    • DEFAULT_DRY_RUN_ACCESS_LEVEL_2: Nama tingkat akses opsional dalam bentuk `accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME`. Sertakan flag ini untuk menerapkan tingkat akses uji coba yang ditentukan ke semua aplikasi secara default jika tidak ditentukan dalam YAML.
    • DEFAULT_SESSION_LENGTH: Durasi sesi opsional dalam format jam, seperti 15h untuk 15 jam, atau 2h untuk dua jam.
    • DEFAULT_SESSION_REAUTH_METHOD: Metode opsional untuk meminta pengguna memverifikasi ulang identitas mereka, yang harus salah satu dari berikut:
      • LOGIN: Terapkan login standar, yang dapat mencakup MFA atau faktor lain yang ditentukan Workspace.
      • PASSWORD: Hanya memerlukan sandi, meskipun faktor lain ditentukan. Jika sandi dikelola menggunakan IdP eksternal, pengguna akan dialihkan ke IdP. Jika sesi IdP aktif, pengguna akan otomatis diautentikasi ulang. Jika IdP tidak aktif, pengguna harus login melalui IdP.
      • SECURITY_KEY: Memerlukan kunci keamanan hardware.

    Cara argumen --level dan --binding-file berfungsi bersama

    • Jika Anda hanya menggunakan --binding-file, hanya aplikasi dalam file yang memiliki kebijakan yang diterapkan.
    • Jika Anda hanya menggunakan --level, tingkat akses akan berlaku untuk semua aplikasi.
    • Jika Anda menggunakan keduanya, aturan akan digabungkan. Nilai --level berlaku untuk semua aplikasi, sedangkan kebijakan dalam file YAML yang ditentukan oleh --binding-file hanya berlaku untuk aplikasi seperti yang ditentukan dalam file.

    Menggunakan kontrol sesi

    • Untuk menetapkan kontrol sesi default untuk semua aplikasi, gunakan --session-length dan --session-reauth-method.
    • Jika Anda juga menentukan kontrol sesi dalam file YAML, kontrol sesi tersebut akan mengganti setelan default untuk aplikasi tertentu tersebut.
    • Anda harus menggunakan --session-length dan --session-reauth-method bersama-sama.

    Untuk menghapus tingkat akses default atau tingkat akses uji coba default, berikan string kosong, seperti --level= atau --dry-run-level=. Jika argumen ini tidak diberikan, perintah update tidak akan melakukan perubahan apa pun.

    Untuk menghapus kontrol sesi, tetapkan --session-length=0.

API

  1. Buat isi JSON.

    {
      "accessLevels": [
        "DEFAULT_ACCESS_LEVEL"
      ],
      "scopedAccessSettings": [
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "clientId": "CLIENT_ID"
              }
            }
          },
          "activeSettings": {
            "accessLevels": [
              "ACCESS_LEVEL_A"
            ],
            "sessionSettings": [
              {
                "sessionLength": "SESSION_LENGTH",
                "sessionReauthMethod": "SESSION_REAUTH_METHOD",
                "sessionLengthEnabled": true
              }
            ]
        }
        },
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "name": "CLIENT_NAME"
              }
            },
            "activeSettings": {
              "accessLevels": [
                "ACCESS_LEVEL_C"
              ]
            }
          }
        }
      ]
    }
    

    Ganti kode berikut:

    • DEFAULT_ACCESS_LEVEL: Nama tingkat akses opsional, yang berbentuk accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Ganti POLICY_ID dengan ID kebijakan akses, dan ACCESS_LEVEL_NAME dengan nama tingkat akses.
    • CLIENT_ID: Client ID OAuth. Anda harus menggunakan clientId jika aplikasi berisi sessionSettings.
    • ACCESS_LEVEL_A: Nama tingkat akses dalam format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
    • SESSION_LENGTH: Durasi sesi menggunakan format durasi ISO 8601, seperti 30m untuk 30 menit, atau 2h untuk dua jam.
    • SESSION_REAUTH_METHOD: Metode opsional untuk meminta pengguna memverifikasi ulang identitas mereka, yang harus salah satu dari berikut:

      • LOGIN: Terapkan login standar, yang dapat mencakup MFA atau faktor lain yang ditentukan Workspace.
      • PASSWORD: Hanya memerlukan sandi, meskipun faktor lain ditentukan. Jika sandi dikelola menggunakan IdP eksternal, pengguna akan dialihkan ke IdP. Jika sesi IdP aktif, pengguna akan otomatis diautentikasi ulang. Jika IdP tidak aktif, pengguna harus login melalui IdP.
      • SECURITY_KEY: Memerlukan kunci keamanan hardware.
    • CLIENT_NAME: Nama klien. Jika aplikasi berisi sessionSettings, Anda tidak dapat menggunakan nama klien. Sebagai gantinya, gunakan Client ID OAuth.

    • ACCESS_LEVEL_C: Nama tingkat akses dalam format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.

  2. Kirim permintaan PATCH.

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK
    

    Ganti kode berikut:

    • ACCESS_BINDING dalam bentuk organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • FIELD_MASK: Daftar kolom yang dipisahkan koma dan wajib diisi yang ingin Anda perbarui. Hal ini memberi tahu API bagian binding akses mana yang akan diubah.

    fieldMask harus berisi kunci JSON tingkat atas dalam isi permintaan yang ingin Anda perbarui, yang dapat berisi accessLevels, dryRunAccessLevels, dan scopedAccessSettings.

    Jika berhasil, Anda akan menerima representasi objek JSON. Jika ada masalah, Anda akan menerima pesan error.

Menghapus binding akses

Konsol

  1. Di Google Cloud konsol, buka halaman Access Context Manager.

    Buka Access Context Manager

  2. Jika diminta, pilih sebuah project.

  3. Di halaman Access Context Manager, pilih binding akses, lalu klik Hapus.

gcloud

   gcloud access-context-manager cloud-bindings delete \
       --binding ACCESS_BINDING

Ganti kode berikut:

  • ACCESS_BINDING dalam bentuk organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
  • ACCESS_BINDING_NAME adalah string unik yang ditampilkan untuk ID name saat binding akses dibuat.

API

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • ACCESS_BINDING_NAME adalah string unik yang ditampilkan untuk ID name saat binding akses dibuat.

Metode HTTP dan URL:

DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"

PowerShell

Jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content

Anda akan menerima kode status yang berhasil (2xx), serta respons yang kosong.