Testare un'intestazione per le restrizioni dell'organizzazione prima di configurare un proxy in uscita

Questa pagina descrive in che modo gli Google Cloud amministratori possono testare le limitazioni dell'organizzazione senza dover configurare un proxy in uscita.

Per creare e testare l'intestazione restrizioni dell'organizzazione:

  1. Per ottenere l' Google Cloud ID organizzazione dell'organizzazione, utilizza il comando gcloud organizations list:

        gcloud organizations list
    

    Di seguito è riportato l'output di esempio:

        DISPLAY_NAME: Organization A
        ID: 123456789
        DIRECTORY_CUSTOMER_ID: a1b2c3d4
    
  2. Dopo aver ottenuto l'ID organizzazione, componi la rappresentazione JSON per il valore dell'intestazione nel seguente formato:

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

    Ad esempio, se la rappresentazione JSON per il valore dell'intestazione è memorizzata nel file authorized_orgs.json, la codifica tramite basenc è la seguente:

     $ 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'Google Cloud organizzazione autorizzata, crea una richiesta curl a una risorsa all'interno di un'Google Cloud organizzazione autorizzata.Google Cloud 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 returns log entries in this project
    
  5. Per verificare se la configurazione dell'intestazione nega l'accesso a una risorsa esterna all'organizzazioneGoogle Cloud autorizzata, crea una richiesta curl a una risorsa esterna a un'organizzazioneGoogle Cloud autorizzata.Google Cloud 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