Cette page décrit les conditions préalables à la configuration du proxy de sortie, comment obtenir l'ID de l'organisation, ajouter l'en-tête de restrictions de l'organisation et configurer le proxy avec la liste des URL cibles.
Les administrateursGoogle Cloud , qui gèrent Google Cloud, et les administrateurs du proxy de sortie, chargés de configurer ce dernier, doivent collaborer pour configurer les restrictions au niveau de l'organisation. Pour en savoir plus sur les solutions partenaires validées avec des restrictions d'organisation, consultez la section Solutions partenaires validées.
Avant de commencer
Si vous êtes administrateur du proxy de sortie, vous devez remplir les conditions préalables suivantes avant de configurer le proxy de sortie pour ajouter l'en-tête de restrictions sur les organisations:
Si les rôles d' Google Cloud administrateur et d'administrateur du proxy de sortie sont différents dans votre organisation, assurez-vous que l' Google Cloud administrateur contacte l'administrateur du proxy de sortie pour configurer ce dernier.
Configurez les règles de pare-feu de votre organisation ou les appareils gérés pour vous assurer que le trafic sortant de tous les utilisateurs de votre organisation passe par le proxy de sortie.
Assurez-vous que le proxy de sortie de votre organisation dispose des fonctionnalités suivantes:
- Insérez des en-têtes. Insère un en-tête HTTP personnalisé dans les requêtes sortantes qui transitent par le proxy de sortie.
- Inspection TLS Si le trafic vers le proxy de sortie est chiffré, le proxy de sortie doit déchiffrer les paquets, insérer l'en-tête et rechiffrer le paquet avant de l'envoyer à la cible.
Filtrer et insérer des en-têtes Facultatif. Acceptez un ou plusieurs des filtres suivants, puis ajoutez l'en-tête uniquement pour les requêtes qui correspondent à la condition de filtrage:
- URL cibles : liste des URL cibles que le proxy de sortie peut mettre en correspondance.
- ID de l'appareil Liste des ID d'appareils que le proxy de sortie peut faire correspondre. Les ID d'appareil doivent être propagés au proxy de sortie.
- ID utilisateur Liste des ID utilisateur que le proxy de sortie peut mettre en correspondance. Les ID utilisateur doivent être propagés au proxy de sortie.
Obtenir l'ID de l'organisation
En tant qu' Google Cloud administrateur, vous devez obtenir l' Google CloudID de l'organisation afin qu'il puisse être ajouté à l'en-tête des restrictions de l'organisation.
Pour trouver l'ID de ressource de votre organisation, exécutez la commande suivante:
gcloud organizations list
Cette commande répertorie toutes les ressources de l'organisation auxquelles vous appartenez, ainsi que les ID de ressources de l'organisation correspondants.
Une fois que vous avez obtenu l'ID de l'organisation, vous pouvez ajouter l'en-tête de restrictions sur les organisations ou demander à l'administrateur du proxy de sortie de l'ajouter.
Ajouter l'en-tête des restrictions de l'organisation
En tant qu'administrateur de proxy de sortie, pour ajouter l'en-tête de restrictions sur les organisations aux requêtes sortantes, procédez comme suit:
- Créez l'en-tête.
- Encodez l'en-tête.
- Configurez le proxy de sortie.
Créer l'en-tête
Créez la représentation JSON de l'en-tête au format suivant :
X-Goog-Allowed-Resources: HEADER_VALUE
HEADER_VALUE
contient une liste d'ID d'organisation Google Cloudautorisés, séparés par une virgule. La valeur doit ensuite être encodée en encodage base64 Web sécurisé.
HEADER_VALUE
présente la structure JSON suivante:
{
"resources": [string,..],
"options": string
}
resources
: liste de chaînes. Chaque chaîne de cette liste doit faire référence à un ID d'organisation Google Cloud. Les ID d'organisation de cette liste sont considérés comme des organisations autorisées lors de l'évaluation.options
: chaîne contenant l'une des valeurs suivantes :"strict"
: applique l'en-tête de restrictions sur les organisations à tous les types de requêtes envoyées aux services Google Cloud compatibles."cloudStorageReadAllowed"
: autorise les requêtes de lecture à Cloud Storage, mais applique l'en-tête de restriction sur les organisations pour tous les types de requêtes envoyées aux services Google Cloud compatibles. Cette option autorise l'accès aux opérations de lecture Cloud Storage suivantes :storage.objects.get
storage.objects.list
storage.objects.getIamPolicy
storage.buckets.get
storage.buckets.list
storage.buckets.getIamPolicy
Pour illustrer cette option, prenons l'exemple d'Alex, qui est l'administrateur de l'organisation Exemple, et de Lee, qui est un employé de cette organisation. Prenons l'exemple d'un site Web tel que altostrat.com, qui stocke du contenu statique dans des buckets Cloud Storage publics et qui se trouve en dehors de l'organisation Exemple. Si Alex utilise l'option strict
pour limiter l'accès de Lee uniquement à l'organisation Example, Lee n'a pas accès au contenu statique d'altostrat.com, qui se trouve dans des buckets Cloud Storage publics appartenant à altostrat.com. Ce comportement affecte la capacité de Lee à parcourir efficacement le site Web, et le même comportement est observé pour tout site Web qui utilise Cloud Storage public pour stocker du contenu statique.
Pour permettre à Lee de consulter le contenu statique sur altostrat.com et de limiter tout autre accès Google Cloud à Example Organization uniquement, Alex utilise l'option cloudStorageReadAllowed
.
Voici un exemple d'en-tête de restrictions d'organisation valide:
{
"resources": ["organizations/1234", "organizations/3456"],
"options": "strict"
}
Encoder l'en-tête
Encodez les ID d'organisation au format base64 Web sécurisé. L'encodage doit respecter les spécifications de la section 5 de la norme RFC 4648.
Par exemple, si la représentation JSON de la valeur d'en-tête est stockée dans le fichier authorized_orgs.json
, pour encoder le fichier, exécutez la commande basenc suivante:
$ cat authorized_orgs.json | basenc --base64url -w0
ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiLCAib3JnYW5pemF0aW9ucy8xMDExMTIxMzE0Il0sCiAib3B0aW9ucyI6ICJzdHJpY3QiCn0K
Voici un exemple d'en-tête après l'encodage de l'ID de l'organisation:
// Encoded representation
X-Goog-Allowed-Resources: ewogInJlc291cmNlcyI6IFsib3JnYW5pemF0aW9ucy8xMjM0NTY3ODkiLCAib3JnYW5pemF0aW9ucy8xMDExMTIxMzE0Il0sCiAib3B0aW9ucyI6ICJzdHJpY3QiCn0K
// Plain-text representation (As HTTP disallows some characters, encode the organization ID)
// Plain-text representation is included here only for readability
X-Goog-Allowed-Resources: {"resources": ["organizations/1234", "organizations/3456"], "options": "strict"}
Configurer le proxy de sortie
Pour insérer l'en-tête dans les requêtes provenant des appareils gérés, configurez le proxy de sortie.
Assurez-vous que si un Google Cloud utilisateur de votre organisation fournit explicitement un en-tête HTTP, le proxy de sortie remplace les valeurs fournies par l' Google Cloud administrateur par celles fournies par l'utilisateur.
Pour éviter d'ajouter cet en-tête aux cibles en dehors de Google Cloud, configurez le proxy de sortie pour qu'il n'ajoute l'en-tête de restrictions sur les organisations aux requêtes qu'avec les cibles suivantes:
*.google.com
*.googleapis.com
*.gcr.io
*.pkg.dev
*.cloudfunctions.net
*.run.app
*.tunnel.cloudproxy.app
*.datafusion.googleusercontent.com
Pour en savoir plus sur les messages d'erreur qui s'affichent en cas de non-respect des restrictions de l'organisation, consultez la section Messages d'erreur.
Étape suivante
- Découvrez comment utiliser les restrictions d'organisation.