Prueba un encabezado de restricciones de organización antes de configurar un proxy de salida

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

Para crear y probar el encabezado de restricciones de la organización, haz lo siguiente:

  1. Para obtener el Google Cloud ID de la organización, 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, escribe la representación JSON del valor del encabezado en el siguiente formato:

     {
     "resources": ["organizations/123456789"],
      "options": "strict"
     }
    
  3. Para codificar el valor del encabezado de solicitud, sigue las especificaciones de la sección 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ónGoogle Cloud autorizada, crea una solicitud curl a un recurso dentro de una organizaciónGoogle Cloud autorizada.Google Cloud Este es un ejemplo de solicitud de 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 niega el acceso a un recurso que está fuera de la organizaciónGoogle Cloud autorizada, crea una solicitud curl a un recurso fuera de una organizaciónGoogle Cloud autorizada. Este es un ejemplo de solicitud de 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 denegó la solicitud al recurso.

¿Qué sigue?