Cette page explique comment les administrateurs Google Cloud peuvent tester les restrictions sur les organisations sans avoir à configurer de proxy de sortie.
Pour créer et tester l'en-tête "Restrictions sur les organisations", procédez comme suit:
Pour obtenir l'ID de l'organisation Google Cloud, exécutez la commande
gcloud organizations list
:gcloud organizations list
Voici un exemple de résultat :
DISPLAY_NAME: Organization A ID: 123456789 DIRECTORY_CUSTOMER_ID: a1b2c3d4
Une fois que vous avez obtenu l'ID de l'organisation, composez la représentation JSON pour l'en-tête. au format suivant:
{ "resources": ["organizations/123456789"], "options": "strict" }
Encodez la valeur de l'en-tête de requête en suivant les spécifications RFC 4648, section 5.
Par exemple, si la représentation JSON de la valeur de l'en-tête est stockée dans le fichier
authorized_orgs.json
, l'encodage via basenc est le suivant :$ OR_HEADER=`cat authorized_orgs.json | basenc --base64url -w0` $ echo $OR_HEADER ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiXQogIm9wdGlvbnMiOiAic3RyaWN0Igp9Cgo=
Pour vérifier si la configuration de l'en-tête permet d'accéder à une ressource dans une organisation Google Cloud autorisée, créez une requête curl à une ressource dans une organisation Google Cloud autorisée. Voici un exemple de requête 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
Pour vérifier si la configuration de l'en-tête refuse l'accès à une ressource située en dehors de l'organisation Google Cloud autorisée, créez une requête curl à une ressource située en dehors d'une organisation Google Cloud autorisée. Voici un exemple de requête 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 message d'erreur "Access denied" (Accès refusé) indique que la requête vers la ressource est refusée.
Étape suivante
- Découvrez comment utiliser les restrictions d'organisation.
- Découvrez les services compatibles avec les restrictions sur les organisations.