Menguji header pembatasan organisasi sebelum mengonfigurasi proxy keluar

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:

  1. 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
    
  2. Setelah Anda mendapatkan ID organisasi, buat 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, 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 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
    
  5. 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