Testare un'intestazione relativa alle limitazioni dell'organizzazione prima di configurare un proxy in uscita

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

In questa pagina viene spiegato in che modo gli amministratori di Google Cloud possono testare le limitazioni dell'organizzazione senza dover configurare un proxy in uscita.

Per creare e testare l'intestazione delle limitazioni dell'organizzazione, segui questi passaggi:

  1. Ottieni l'ID organizzazione Google Cloud dell'organizzazione utilizzando il seguente comando:

        gcloud organizations list
        DISPLAY_NAME: Organization A
        ID: 123456789
        DIRECTORY_CUSTOMER_ID: a1b2c3d4
    
  2. Dopo avere ottenuto l'ID organizzazione, scrivi la rappresentazione JSON per il valore dell'intestazione nel seguente formato:

     {
     "resources": ["organizations/123456789"]
      "options": "strict"
     }
    
  3. Codifica il valore dell'intestazione della richiesta seguendo le specifiche della sezione 5 RFC 4648.

    Ad esempio, se la rappresentazione JSON per il valore dell'intestazione è archiviata nel file authorized_orgs.json, la codifica riportata di seguito è basenc:

     $ OR_HEADER=`cat authorized_orgs.json | basenc --base64url -w0`
     $ echo $OR_HEADER
    ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiXQogIm9wdGlvbnMiOiAic3RyaWN0Igp9Cgo=
    
  4. Per verificare se la configurazione dell'intestazione consente l'accesso a una risorsa all'interno di un'organizzazione Google Cloud autorizzata, crea una richiesta curl a una risorsa all'interno di un'organizzazione Google Cloud autorizzata. Ecco un esempio di richiesta 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 return log entries in this project
    
  5. Per verificare se la configurazione dell'intestazione nega l'accesso a una risorsa esterna all'organizzazione Google Cloud autorizzata, crea una richiesta curl a una risorsa esterna a un'organizzazione Google Cloud autorizzata. Ecco un esempio di richiesta 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"
            }
          }
        ]
      }
    }
    
    

    Un messaggio di errore di accesso negato indica che la richiesta alla risorsa è stata rifiutata.

Passaggi successivi