Halaman ini menjelaskan cara administrator Google Cloud dapat menguji pembatasan organisasi tanpa harus mengonfigurasi proxy traffic keluar.
Untuk membuat dan menguji header pembatasan organisasi, lakukan hal berikut:
Untuk mendapatkan ID organisasi Google Cloud organisasi, gunakan perintah
gcloud organizations list
:gcloud organizations list
Berikut adalah contoh output-nya:
DISPLAY_NAME: Organization A ID: 123456789 DIRECTORY_CUSTOMER_ID: a1b2c3d4
Setelah Anda mendapatkan ID organisasi, susun 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
, kode 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 organisasi Google Cloud resmi, buat permintaan curl ke resource dalam organisasi Google Cloud resmi. 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 organisasi Google Cloud resmi, buat permintaan curl ke resource di luar organisasi Google 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 pembatasan organisasi.
- Pelajari layanan yang didukung oleh pembatasan organisasi.