Prueba un encabezado de restricciones para organizaciones antes de configurar un proxy de salida

En esta página, se describe cómo los administradores de Google Cloud pueden probar las restricciones para organizaciones sin tener que configurar un proxy de salida.

Para crear y probar el encabezado de restricciones para organizaciones, haz lo siguiente:

  1. Para obtener el ID de la organización de Google Cloud, usa el comando gcloud organizations list:

        gcloud organizations list
    

    El siguiente es el resultado de ejemplo:

        DISPLAY_NAME: Organization A
        ID: 123456789
        DIRECTORY_CUSTOMER_ID: a1b2c3d4
    
  2. Después de obtener el ID de la organización, redacta la representación JSON para el valor del encabezado en el siguiente formato:

     {
     "resources": ["organizations/123456789"],
      "options": "strict"
     }
    
  3. Codifique el valor del encabezado de la solicitud siguiendo las especificaciones del artículo 5 de la RFC 4648.

    Por ejemplo, si la representación JSON del valor del encabezado se almacena en el archivo authorized_orgs.json, la siguiente es la codificación a través de basenc:

     $ OR_HEADER=`cat authorized_orgs.json | basenc --base64url -w0`
     $ echo $OR_HEADER
    ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiXQogIm9wdGlvbnMiOiAic3RyaWN0Igp9Cgo=
    
  4. Para probar si la configuración del encabezado permite el acceso a un recurso dentro de una organización autorizada de Google Cloud, crea una solicitud curl a un recurso dentro de una organización autorizada de Google Cloud. Este es un ejemplo de solicitud 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 probar si la configuración del encabezado rechaza el acceso a un recurso que está fuera de la organización autorizada de Google Cloud, crea una solicitud curl a un recurso fuera de una organización de Google Cloud autorizada. Este es un ejemplo de solicitud 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 mensaje de error de acceso denegado indica que se rechazó la solicitud al recurso.

¿Qué sigue?