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

Questa pagina descrive in che modo gli Trusted Cloud by S3NS 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' Trusted Cloud by S3NS 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'Trusted Cloud by S3NS organizzazione autorizzata, crea una richiesta curl a una risorsa all'interno di un'Trusted Cloud by S3NS organizzazione autorizzata.Trusted Cloud by S3NS 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'organizzazioneTrusted Cloud by S3NS autorizzata, crea una richiesta curl a una risorsa esterna a un'organizzazioneTrusted Cloud by S3NS autorizzata.Trusted Cloud by S3NS 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