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

Esta página descreve como os administradores do Google Cloud podem testar as restrições da organização sem precisar 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 encontrar o ID da organização no Google Cloud, use o comando gcloud organizations list:

        gcloud organizations list
    

    Confira abaixo um exemplo de saída:

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

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

    Por exemplo, se a representação JSON do valor do cabeçalho for armazenada no authorized_orgs.json, veja a seguir a codificação por 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 em um servidor organização do Google Cloud, crie uma solicitação curl para um recurso em uma organização do Google Cloud. Aqui está 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 do Google Cloud, crie uma solicitação curl para um recurso fora de uma organização do Google Cloud. Confira 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