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

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

Para crear y probar el encabezado de restricciones de la organización, sigue estos pasos:

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

        gcloud organizations list
    

    A continuación, se muestra el resultado de ejemplo:

        DISPLAY_NAME: Organization A
        ID: 123456789
        DIRECTORY_CUSTOMER_ID: a1b2c3d4
    
  2. Una vez que tengas el ID de la organización, crea la representación JSON del valor del encabezado con el siguiente formato:

     {
     "resources": ["organizations/123456789"],
      "options": "strict"
     }
    
  3. Codifica el valor del encabezado de la solicitud siguiendo las especificaciones de la sección 5 de RFC 4648.

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

     $ OR_HEADER=`cat authorized_orgs.json | basenc --base64url -w0`
     $ echo $OR_HEADER
    ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiXQogIm9wdGlvbnMiOiAic3RyaWN0Igp9Cgo=
    
  4. Para comprobar si la configuración de encabezados permite acceder a un recurso de una organización autorizada, crea una solicitud curl a un recurso de una organización autorizada.Google Cloud Google Cloud Aquí tienes 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 comprobar si la configuración de encabezado deniega el acceso a un recurso que está fuera de la organización autorizada, crea una solicitud curl a un recurso que esté fuera de una organización autorizada.Google Cloud Google Cloud Aquí tienes 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 ha denegado la solicitud al recurso.

Siguientes pasos