Menguji header pembatasan organisasi sebelum mengonfigurasi proxy traffic keluar

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:

  1. 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
    
  2. Setelah Anda mendapatkan ID organisasi, susun representasi JSON untuk nilai header dalam format berikut:

     {
     "resources": ["organizations/123456789"],
      "options": "strict"
     }
    
  3. 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=
    
  4. 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
    
  5. 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