Resource Manager fournit une contrainte de restriction de domaine pouvant être utilisée dans les règles d'administration pour limiter le partage des ressources en fonction du domaine. Cette contrainte vous permet de restreindre l'ensemble des identités pouvant être utilisées dans les stratégies Identity and Access Management.
Les règles d'administration peuvent utiliser cette contrainte pour limiter le partage de ressources à un ensemble spécifié d'un ou plusieurs domaines Google Workspace. Des exceptions peuvent être accordées pour chaque dossier ou pour chaque projet. Pour en savoir plus sur l'ajout d'exceptions, consultez la section Remplacer la règle d'administration pour un projet.
La contrainte de restriction de domaine n'est pas rétroactive. Cette limitation ne s'applique qu'aux modifications de stratégie IAM effectuées après la définition de la restriction de domaine, et non à celles apportées antérieurement. La contrainte de restriction de domaine s'applique à toutes les modifications des stratégies IAM, y compris les modifications apportées par un agent de service en réponse à une autre action. Par exemple, vous disposez d'un service automatisé qui importe des ensembles de données BigQuery et un agent de service BigQuery modifie les stratégies IAM sur un nouvel ensemble de données. Cette action sera limitée par la contrainte de restriction de domaine et bloquée.
Prenons l'exemple de deux organisations liées : examplepetstore.com et altostrat.com. Vous avez accordé un rôle IAM dans altostrat.com à une identité examplepetstore.com. Vous avez décidé ultérieurement d'effectuer un filtrage au niveau du domaine pour restreindre l'ensemble des identités utilisables, puis appliqué une règle d'administration avec la contrainte de restriction de domaine dans altostrat.com. Dans ce cas, les identités examplepetstore.com existantes ne perdent pas l'accès à altostrat.com. Par contre, vous ne pouvez plus accorder des rôles IAM qu'aux identités du domaine altostrat.com.
La contrainte de restriction de domaine est basée sur la contrainte de liste iam.allowedPolicyMemberDomains
.
Lorsque cette contrainte est définie sur un domaine Google Workspace, toutes les identités appartenant à ce domaine sont affectées. Cela inclut les comptes utilisateur gérés dans la console Google Workspace et non depuis la console Google Cloud.
Définir la règle d'administration
La contrainte de restriction de domaine est un type de contrainte de liste.
Les numéros client Google Workspace peuvent être ajoutés et supprimés de la liste allowed_values
d'une contrainte de restriction de domaine. La contrainte de restriction de domaine n'est pas compatible avec le refus des valeurs, et une règle d'administration ne peut pas être enregistrée avec des ID dans la liste denied_values
.
Tous les domaines associés à un compte Google Workspace répertorié dans allowed_values
seront autorisés par la règle d'administration. Tous les autres domaines seront refusés par la règle d'administration.
Pour définir cette contrainte, vous devez être autorisé à modifier les règles d'administration. Par exemple, le rôle orgpolicy.policyAdmin
est autorisé à définir des contraintes de règle d'administration. Le rôle resourcemanager.organizationAdmin
est autorisé à ajouter un utilisateur en tant qu'administrateur des règles d'administration.
Consultez la page Utiliser des contraintes pour en savoir plus sur la gestion des règles au niveau de l'organisation.
Console
Pour définir une règle d'administration incluant une contrainte de restriction de domaine, procédez comme suit :
- Accédez à la page "Règles d'administration" dans la console Google Cloud.
Accéder à la page "Règles d'administration" - Sélectionnez l'outil de sélection de projets en haut de la page.
- Dans le sélecteur de projet, sélectionnez l'organisation pour laquelle vous souhaitez définir la règle.
- Dans les règles d'administration, sélectionnez Partage restreint de domaine dans la liste des contraintes.
- Cliquez sur Modifier.
- Sous Applicable à, sélectionnez Personnaliser.
- Cliquez sur Add rule (Ajouter une règle).
- Sous Valeurs de règles, indiquez si cette règle d'administration doit autoriser toutes les valeurs ou spécifier un ensemble personnalisé de valeurs. La contrainte de restriction de domaine n'est pas compatible avec l'option Tout refuser.
- Sous Type de règle, sélectionnez Autoriser. La contrainte de restriction de domaine n'est pas compatible avec les valeurs Deny.
- Sous Valeurs personnalisées, saisissez un numéro client Google Workspace dans la zone de texte. Si vous souhaitez ajouter plusieurs ID, cliquez sur Nouvelle valeur de règle pour créer une zone de texte supplémentaire.
- Cliquez sur OK.
- Cliquez sur Enregistrer. Une notification s'affiche. Elle confirme que la règle a été mise à jour.
gcloud
Les règles peuvent être définies via Google Cloud CLI. Pour créer une règle qui inclut la contrainte de restriction de domaine, exécutez la commande suivante :
gcloud resource-manager org-policies allow \ --organization 'ORGANIZATION_ID' \ iam.allowedPolicyMemberDomains 'DOMAIN_ID_1' \ 'DOMAIN_ID_2'
Où :
- ORGANIZATION_ID correspond à l'ID du nœud d'organisation sur lequel définir cette règle.
- DOMAINID# est un ou plusieurs numéros Google Workspace auxquels vous souhaitez autoriser l'accès.
Pour en savoir plus sur l'utilisation de contraintes dans les règles d'administration, consultez la page Utiliser des contraintes.
Exemple de règle d'administration
L'extrait de code suivant montre une règle d'administration incluant la contrainte de restriction de domaine :
resource: "organizations/842463781240"
policy {
constraint: "constraints/iam.allowedPolicyMemberDomains"
etag: "\a\005L\252\122\321\946\334"
list_policy {
allowed_values: "is:C03xgje4y"
allowed_values: "is:C03g5e3bc"
allowed_values: "is:C03t213bc"
}
}
Les éléments allowed_values
correspondent aux numéros client Google Workspace, tels que C03xgje4y
.
Seules les identités appartenant à un domaine Google Workspace de la liste allowed_values
seront autorisées dans les stratégies IAM une fois que cette règle d'administration aura été appliquée. Les groupes et les utilisateurs humains Google Workspace doivent faire partie de ce domaine Google Workspace, et les comptes de service IAM doivent être les enfants d'une ressource "organisation" associée au domaine Google Workspace indiqué.
Par exemple, si vous avez créé une règle d'administration avec uniquement le numéro client Google Workspace de votre entreprise, seuls les membres de ce domaine peuvent alors être ajoutés à la stratégie IAM à partir de ce moment.
Exemple de message d'erreur
Lorsque la contrainte d'organisation de restriction de domaine n'est pas respectée du fait de la tentative d'ajout d'un compte principal non inclus dans la liste allowed_values
, l'opération échoue et un message d'erreur s'affiche.
gcloud
ERROR: (gcloud.projects.set-iam-policy) FAILED_PRECONDITION: One or more users named in the policy do not belong to a permitted customer.
Console
Récupérer un numéro client Google Workspace
Le numéro client Google Workspace utilisé par la contrainte de restriction de domaine peut être obtenu de deux manières :
gcloud
La commande gcloud organizations list permet d'afficher toutes les organisations pour lesquelles vous détenez l'autorisation resourcemanager.organizations.get
:
gcloud organizations list
Cette commande renvoie les éléments DISPLAY_NAME
, ID
(ID de l'organisation) et DIRECTORY_CUSTOMER_ID
. Le numéro client Google Workspace correspond à l'élément DIRECTORY_CUSTOMER_ID
.
API
L'API Google Workspace Directory vous permet de récupérer un numéro client Google Workspace.
Lorsque vous êtes connecté en tant qu'administrateur Google Workspace, vous pouvez consulter la documentation sur la méthode API Customers : get, puis cliquer sur Exécuter. Une fois l'autorisation émise, la réponse affiche votre numéro client.
Vous pouvez également utiliser un client API :
- Obtenez un jeton d'accès OAuth pour le champ d'application
https://www.googleapis.com/auth/admin.directory.customer.readonly
. Exécutez la commande suivante pour interroger l'API Google Workspace Directory :
curl -# -X GET "https://www.googleapis.com/admin/directory/v1/customers/customerKey" \ -H "Authorization: Bearer $access_token" -H "Content-Type: application/json"
Cette commande renvoie une réponse JSON incluant les informations relatives au client. Le numéro client Google Workspace correspond à l'élément id
.
Limiter les sous-domaines
La contrainte de restriction de domaine fonctionne en limitant l'accès à tous les domaines associés à un numéro client Google Workspace donné. Chaque compte Google Workspace présente un seul domaine principal, et aucun ou plusieurs domaines secondaires. Tous les domaines associés au numéro client Google Workspace sont soumis à la contrainte.
L'application de la contrainte de restriction de domaine à une ressource permet de contrôler le domaine principal et tous les domaines secondaires pouvant accéder à cette ressource et à ses descendants dans la hiérarchie des ressources.
Le tableau ci-dessous présente des exemples de combinaisons courantes de domaines et de sous-domaines Google Workspace :
Domaine principal | Sous-domaine | Contrainte de restriction de domaine | user@sub.domain.com est-il autorisé ? |
---|---|---|---|
domain.com | aucun | Autoriser : domain.com | Non |
domain.com | sub.domain.com | Autoriser : domain.com | Yes |
domain.com | sub.domain.com | Autoriser : sub.domain.com | Yes |
sub.domain.com | domain.com | Autoriser : sub.domain.com | Yes |
sub.domain.com | aucun | Autoriser : sub.domain.com | Yes |
Pour différencier l'accès de contrainte de restriction de domaine entre deux domaines, chaque domaine doit être associé à un compte Google Workspace différent. Chaque compte Google Workspace est associé à un nœud d'organisation et peut appliquer ses propres règles d'administration. Cela vous permet d'associer domain.com
à un compte Google Workspace et sub.domain.com
à un autre pour un contrôle d'accès plus précis. Pour en savoir plus, consultez la page Gérer plusieurs organisations.
Résoudre les problèmes connus
Les règles d'administration ne sont pas rétroactives. Si vous devez forcer une modification de votre hiérarchie de ressources qui violerait une contrainte imposée, vous pouvez désactiver la règle d'administration, effectuer la modification, puis la réactiver.
Les sections suivantes décrivent les problèmes connus liés aux services qui peuvent se produire lorsque cette contrainte est appliquée.
Partager des données publiques
Certains produits Google Cloud tels que BigQuery, Cloud Functions, Cloud Run, Cloud Storage et Pub/Sub sont compatibles avec le partage de données publiques. L'application de la contrainte de partage restreint de domaine dans une règle d'administration empêchera le partage de données publiques.
Pour partager publiquement des données, désactivez temporairement la contrainte de partage restreint de domaine pour la ressource de projet où résident les données que vous souhaitez partager. Après avoir partagé la ressource en mode public, vous pouvez réactiver la contrainte de partage restreint de domaine.
Récepteur de journaux BigQuery pour un compte de facturation
Le compte de service utilisé par le récepteur de journaux BigQuery pour les comptes de facturation (format: b*@*.iam.gserviceaccount.com
) est considéré comme externe et bloqué par la contrainte de partage restreint de domaine dans une règle d'administration.
Pour attribuer à ce compte de service un rôle sur un ensemble de données BigQuery dans un projet auquel la contrainte de restriction de domaine est appliquée, procédez comme suit :
Supprimez la règle d'administration contenant la contrainte de restriction de domaine.
Si la contrainte est appliquée dans une règle d'administration à la fois sur cette organisation et sur le projet, définissez la règle d'administration contenant la contrainte de restriction de domaine sur le projet pour autoriser toutes les valeurs.
Si cette contrainte est appliquée dans une règle d'administration sur l'organisation parente et héritée du projet, ajoutez la règle d'administration contenant la contrainte de restriction de domaine au projet, avec toutes les valeurs autorisées.
Attribuez au compte de service correspondant (au format
b*@*.iam.gserviceaccount.com
) le rôle BigQuery indiqué lors du processus de création du récepteur.Annulez les modifications apportées à la règle d'administration avec la contrainte de restriction de domaine sur le projet.
Compte de service d'exportation Cloud Billing
Lorsque cette contrainte est activée, l'activation de l'exportation de la facturation vers un bucket échouera probablement. N'utilisez pas cette contrainte sur les buckets utilisés pour l'exportation de la facturation.
L'adresse e-mail du compte de service d'exportation Cloud Billing est la suivante : 509219875288-kscf0cheafmf4f6tp1auij5me8qakbin@developer.gserviceaccount.com
Activer la journalisation de l'accès au stockage
Si cette option est activée, la contrainte de restriction de domaine bloquera tous les domaines qui ne sont pas spécifiquement autorisés dans la règle d'administration. Cela empêchera également d'accorder l'accès aux comptes de service Google. Pour configurer la journalisation de l'accès au stockage sur un bucket Cloud Storage auquel la contrainte de restriction de domaine est appliquée, procédez comme suit :
Supprimez la règle d'administration contenant la contrainte de restriction de domaine.
Accordez l'accès à ce bucket à
cloud-storage-analytics@google.com
avec l'autorisationWRITE
.Mettez à nouveau en œuvre la règle d'administration avec la contrainte de restriction de domaine.
Activer l'API Firebase
Lorsqu'elle est activée, la contrainte de restriction de domaine bloque les comptes de service non autorisés dans la règle d'administration. Cela empêche l'activation de l'API Firebase, car ce processus nécessite des comptes de service externes. Une fois l'API activée, vous pouvez appliquer en toute sécurité la contrainte de restriction de domaine sans que celle-ci n'interfère avec la fonction de l'API Firebase. Pour activer l'API Firebase, procédez comme suit :
Supprimez la règle d'administration contenant la contrainte de restriction de domaine.
Activez l'API Firebase Management.
Mettez à nouveau en œuvre la règle d'administration avec la contrainte de restriction de domaine.
Groupes Google
Les groupes Google créés dans un domaine autorisé peuvent toujours se voir attribuer des rôles dans la stratégie IAM lorsque la contrainte de restriction de domaine est appliquée, même si le groupe contient des membres extérieurs à ce domaine.
Pour s'assurer que les administrateurs du projet ne peuvent pas contourner la contrainte de restriction de domaine, l'administrateur Google Workspace doit s'assurer que les propriétaires de groupe ne peuvent pas autoriser les membres n'appartenant pas au domaine dans le panneau d'administrateur Google Workspace.
Forcer l'accès au compte
Si vous devez forcer l'accès au compte pour un projet en violation des restrictions de domaine, procédez comme suit :
Supprimez la règle d'administration contenant la contrainte de restriction de domaine.
Accordez au projet l'accès au compte.
Mettez à nouveau en œuvre la règle d'administration avec la contrainte de restriction de domaine.
Vous pouvez également accorder l'accès à un groupe Google qui contient les comptes de service concernés :
Créez un groupe Google dans le domaine autorisé.
Utilisez le panneau d'administration de Google Workspace pour désactiver la restriction de domaine pour ce groupe.
Ajoutez le compte de service au groupe.
Accordez l'accès au groupe Google dans la stratégie IAM.