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

Nesta página, descrevemos como os administradores do Google Cloud podem testar restrições para organizações sem precisar configurar um proxy de saída.

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

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

        gcloud organizations list
    

    Este é o exemplo de saída:

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

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

    Por exemplo, se a representação JSON do valor do cabeçalho estiver armazenada no arquivo authorized_orgs.json, veja a seguir a codificação pelo 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 acesso a um recurso dentro de uma organização autorizada do Google Cloud, crie uma solicitação curl para um recurso dentro de uma organização autorizada do Google Cloud. Veja um exemplo de solicitação 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 acesso a um recurso que está fora da organização autorizada do Google Cloud, crie uma solicitação curl para um recurso fora de uma organização autorizada do Google Cloud. Veja um exemplo de solicitação 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 a solicitação ao recurso foi negada.

A seguir