Teste um cabeçalho de restrições para organizações antes de configurar um proxy de saída

Esta página descreve como os Google Cloud administradores podem testar as restrições da organização sem ter de configurar um proxy de saída.

Para criar e testar o cabeçalho de restrições da organização, faça o seguinte:

  1. Para obter o Google Cloud ID da organização, use o comando gcloud organizations list:

        gcloud organizations list
    

    Segue-se o exemplo de resultado:

        DISPLAY_NAME: Organization A
        ID: 123456789
        DIRECTORY_CUSTOMER_ID: a1b2c3d4
    
  2. Depois de obter o ID da organização, crie a representação JSON do valor do cabeçalho no seguinte formato:

     {
     "resources": ["organizations/123456789"],
      "options": "strict"
     }
    
  3. Codifique o valor do cabeçalho do pedido seguindo as especificações da secção 5 da RFC 4648.

    Por exemplo, se a representação JSON do valor do cabeçalho estiver armazenada no ficheiro authorized_orgs.json, a seguinte é a codificação através de basenc:

     $ OR_HEADER=`cat authorized_orgs.json | basenc --base64url -w0`
     $ echo $OR_HEADER
    ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiXQogIm9wdGlvbnMiOiAic3RyaWN0Igp9Cgo=
    
  4. Para testar se a configuração do cabeçalho permite o acesso a um recurso numaGoogle Cloud organização autorizada, crie um pedido curl para um recurso numaGoogle Cloud organização autorizada. Segue-se um exemplo de um pedido 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. Para testar se a configuração do cabeçalho nega o acesso a um recurso que está fora daGoogle Cloud organização autorizada, crie um pedido curl para um recurso fora de umaGoogle Cloud organização autorizada. Segue-se um exemplo de um pedido 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"
            }
          }
        ]
      }
    }
    
    

    Uma mensagem de erro de acesso negado indica que o pedido ao recurso foi negado.

O que se segue?