Halaman ini menjelaskan cara Google Cloud administrator dapat menguji batasan organisasi tanpa harus mengonfigurasi proxy keluar.
Untuk membuat dan menguji header batasan organisasi, lakukan hal berikut:
Untuk mendapatkan Google Cloud ID organisasi, gunakan perintah
gcloud organizations list
:gcloud organizations list
Berikut adalah contoh output:
DISPLAY_NAME: Organization A ID: 123456789 DIRECTORY_CUSTOMER_ID: a1b2c3d4
Setelah Anda mendapatkan ID organisasi, buat representasi JSON untuk nilai header dalam format berikut:
{ "resources": ["organizations/123456789"], "options": "strict" }
Enkode nilai untuk header permintaan dengan mengikuti spesifikasi RFC 4648 Bagian 5.
Misalnya, jika representasi JSON untuk nilai header disimpan dalam file
authorized_orgs.json
, berikut adalah encoding melalui basenc:$ OR_HEADER=`cat authorized_orgs.json | basenc --base64url -w0` $ echo $OR_HEADER ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiXQogIm9wdGlvbnMiOiAic3RyaWN0Igp9Cgo=
Untuk menguji apakah konfigurasi header mengizinkan akses ke resource dalam organisasiGoogle Cloud yang diberi otorisasi, buat permintaan curl ke resource dalam organisasiGoogle Cloud yang diberi otorisasi. Berikut adalah contoh permintaan curl:
# Get auth token $ TOKEN=$(gcloud auth print-access-token) # Make a request that includes the organization restriction header; this call makes a request to the logging API for a project within the same organization listed in the header $ curl -H "X-Goog-Allowed-Resources: ${OR_HEADER}" -X POST -d '{"projectIds": ["my-project-123"]}' -H 'Content-Type: application/json' -H "Authorization: Bearer ${TOKEN}" "https://logging.googleapis.com/v2/entries:list" # A successful request returns log entries in this project
Untuk menguji apakah konfigurasi header menolak akses ke resource yang berada di luar organisasiGoogle Cloud yang diotorisasi, buat permintaan curl ke resource di luar organisasiGoogle Cloud yang diotorisasi. Berikut adalah contoh permintaan curl:
# Get auth token $ TOKEN=$(gcloud auth print-access-token) # Make a request that includes the organization restriction header; this call makes a request to the logging API for a project not within the same organization listed in the header $ curl -H "X-Goog-Allowed-Resources: ${OR_HEADER}" -X POST -d '{"projectIds": ["other-project-123"]}' -H 'Content-Type: application/json' -H "Authorization: Bearer ${TOKEN}" "https://logging.googleapis.com/v2/entries:list" { "error": { "code": 403, "message": "Access denied by organization restriction. Contact your administrator for additional information.", "status": "PERMISSION_DENIED", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "ORG_RESTRICTION_VIOLATION", "domain": "googleapis.com", "metadata": { "service": "logging.googleapis.com", "consumer": "other-project-123" } } ] } }
Pesan error akses ditolak menunjukkan bahwa permintaan ke resource ditolak.
Langkah selanjutnya
- Pelajari cara menggunakan batasan organisasi.
- Pelajari layanan yang didukung oleh batasan organisasi.