Cette page explique comment utiliser les rôles IAM (Identity and Access Management) dans les règles d'entrée et de sortie pour autoriser l'accès aux ressources protégées par des périmètres de service.
VPC Service Controls utilise des règles d'entrée et de sortie pour autoriser l'accès vers et depuis des ressources et clients protégés par des périmètres de service. Vous pouvez également limiter vos règles d'entrée et de sortie à l'aide de rôles IAM. Lorsque vous spécifiez un rôle IAM dans une règle, celle-ci n'autorise que les actions associées aux autorisations faisant partie du rôle IAM.
Avant de commencer
En savoir plus sur les règles d'entrée et de sortie
Si vous souhaitez utiliser un rôle personnalisé dans les règles d'entrée et de sortie, assurez-vous de disposer des autorisations requises.
Configurer des rôles IAM dans les règles d'entrée
Console
Lorsque vous modifiez une stratégie d'entrée d'un périmètre de service ou définissez une stratégie d'entrée lors de la création d'un périmètre à l'aide de la console Google Cloud, vous pouvez configurer la règle d'entrée pour qu'elle utilise des rôles IAM:
Lorsque vous créez ou modifiez un périmètre dans la console Google Cloud, sélectionnez Règle d'entrée.
Dans le volet Règles d'entrée, sélectionnez une règle d'entrée existante ou cliquez sur Ajouter une règle d'entrée.
Dans la section To (À) de votre règle d'entrée, sélectionnez Select IAM roles (Preview) (Sélectionner des rôles IAM (Preview)) dans la liste Operations or IAM roles (Opérations ou rôles IAM).
Cliquez sur Ajouter des rôles IAM.
Dans le volet Ajouter des rôles IAM, sélectionnez les rôles IAM que vous souhaitez autoriser.
Pour en savoir plus sur les services et rôles compatibles, consultez la section Produits compatibles.
Cliquez sur Ajouter les rôles IAM sélectionnés.
Cliquez sur OK.
Pour en savoir plus sur les autres attributs de règle d'entrée, consultez la documentation de référence sur les règles d'entrée.
gcloud
Vous pouvez configurer une règle d'entrée pour qu'elle utilise des rôles IAM à l'aide d'un fichier JSON ou d'un fichier YAML. L'exemple suivant utilise le format YAML:
- ingressFrom:
identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
*OR*
identities:
- PRINCIPAL_IDENTIFIER
sources:
- resource: RESOURCE
*OR*
- accessLevel: ACCESS_LEVEL
ingressTo:
operations:
- serviceName: SERVICE_NAME
methodSelectors:
- method: METHOD_NAME
*OR*
roles:
- ROLE_NAME
resources:
- projects/PROJECT_NUMBER
Remplacez ROLE_NAME
par les rôles IAM qui définissent le champ d'application d'accès pour les services spécifiés dans la règle.
Spécifiez un seul rôle ou une combinaison de rôles incluant toutes les autorisations requises pour accéder aux services. Pour spécifier un rôle, utilisez les formats de nom de rôle mentionnés dans la section Composants de rôle, à l'exception du format suivant: projects/PROJECT_ID/roles/IDENTIFIER
.
Pour en savoir plus sur les services et rôles compatibles, consultez la section Produits compatibles.
Pour en savoir plus sur les autres attributs de règle d'entrée, consultez la documentation de référence sur les règles d'entrée.
Après avoir mis à jour une règle d'entrée existante pour configurer des rôles IAM, vous devez mettre à jour les règles de stratégie du périmètre de service:
gcloud access-context-manager perimeters update PERIMETER_ID --set-ingress-policies=RULE_POLICY.yaml
Remplacez les éléments suivants :
PERIMETER_ID
: ID du périmètre de service que vous souhaitez mettre à jour.RULE_POLICY
: chemin d'accès au fichier de règle d'entrée modifié.
Pour en savoir plus, consultez la section Mettre à jour les règles d'entrée et de sortie pour un périmètre de service.
Configurer des rôles IAM dans les règles de sortie
Console
Lorsque vous modifiez une stratégie de sortie d'un périmètre de service ou définissez une stratégie de sortie lors de la création d'un périmètre à l'aide de la console Google Cloud, vous pouvez configurer la règle de sortie pour qu'elle utilise des rôles IAM:
Lorsque vous créez ou modifiez un périmètre dans la console Google Cloud, sélectionnez Règle de sortie.
Dans le volet Règles de sortie, sélectionnez une règle de sortie existante ou cliquez sur Ajouter une règle de sortie.
Dans la section To (À) de votre règle de sortie, sélectionnez Select IAM roles (Preview) (Sélectionner des rôles IAM (Preview)) dans la liste Operations or IAM roles (Opérations ou rôles IAM).
Cliquez sur Ajouter des rôles IAM.
Dans le volet Ajouter des rôles IAM, sélectionnez les rôles IAM que vous souhaitez autoriser.
Pour en savoir plus sur les services et rôles compatibles, consultez la section Produits compatibles.
Cliquez sur Ajouter les rôles IAM sélectionnés.
Cliquez sur OK.
Pour en savoir plus sur les autres attributs de règle de sortie, consultez la documentation de référence sur les règles de sortie.
gcloud
Vous pouvez configurer une règle de sortie pour utiliser des rôles IAM à l'aide d'un fichier JSON ou d'un fichier YAML. L'exemple suivant utilise le format YAML:
- egressTo:
operations:
- serviceName: SERVICE_NAME
methodSelectors:
- method: METHOD_NAME
*OR*
roles:
- ROLE_NAME
resources:
- projects/PROJECT_NUMBER
egressFrom:
identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
*OR*
identities:
- PRINCIPAL_IDENTIFIER
sources:
- resource: RESOURCE
*OR*
- accessLevel: ACCESS_LEVEL
sourceRestriction: RESTRICTION_STATUS
Remplacez ROLE_NAME
par les rôles IAM qui définissent le champ d'application de l'accès pour les services spécifiés dans la règle.
Spécifiez un seul rôle ou une combinaison de rôles incluant toutes les autorisations requises pour accéder aux services. Pour spécifier un rôle, utilisez les formats de nom de rôle mentionnés dans la section Composants de rôle, à l'exception du format suivant: projects/PROJECT_ID/roles/IDENTIFIER
.
Pour en savoir plus sur les services et rôles compatibles, consultez la section Produits compatibles.
Pour en savoir plus sur les autres attributs de règle de sortie, consultez la documentation de référence sur les règles de sortie.
Après avoir mis à jour une règle de sortie existante pour configurer des rôles IAM, vous devez mettre à jour les règles du périmètre de service:
gcloud access-context-manager perimeters update PERIMETER_ID --set-egress-policies=RULE_POLICY.yaml
Remplacez les éléments suivants :
PERIMETER_ID
: ID du périmètre de service que vous souhaitez mettre à jour.RULE_POLICY
: chemin d'accès au fichier de règle de sortie modifié.
Pour en savoir plus, consultez la section Mettre à jour les règles d'entrée et de sortie pour un périmètre de service.
Produits compatibles
Vous pouvez utiliser les rôles IAM des services Google Cloud suivants dans les règles d'entrée et de sortie:
Product | Limites |
---|---|
Artifact Registryartifactregistry.googleapis.com |
|
BigQuerybigquery.googleapis.com |
|
Service de transfert de données BigQuerybigquerydatatransfer.googleapis.com |
|
Bigtablebigtable.googleapis.com |
|
Autorisation binairebinaryauthorization.googleapis.com |
|
Cloud Composercomposer.googleapis.com |
|
Cloud Key Management Servicecloudkms.googleapis.com |
|
Cloud Logginglogging.googleapis.com |
|
Cloud Monitoringmonitoring.googleapis.com |
|
Cloud Runrun.googleapis.com |
|
Fonctions Cloud Runcloudfunctions.googleapis.com |
|
Cloud SQLsqladmin.googleapis.com |
|
Cloud Storagestorage.googleapis.com |
|
Compute Enginecompute.googleapis.com |
|
Dataflowdataflow.googleapis.com |
|
Dataprocdataproc.googleapis.com |
|
Google Kubernetes Enginecontainer.googleapis.com |
|
Identity and Access Managementiam.googleapis.com |
|
Pub/Subpubsub.googleapis.com |
|
Gestionnaire de ressourcescloudresourcemanager.googleapis.com |
|
Secret Managersecretmanager.googleapis.com |
|
Spannerspanner.googleapis.com |
|
Pour obtenir la liste des rôles IAM prédéfinis de ces services que vous pouvez utiliser dans les règles d'entrée et de sortie, consultez la section Rôles prédéfinis.
Toutefois, certains rôles IAM de ces services ne sont pas compatibles avec les règles d'entrée et de sortie, car certaines ou toutes les autorisations sous-jacentes ne sont pas acceptées:
L'utilisation d'un rôle IAM partiellement compatible dans une règle d'entrée ou de sortie rend la règle inefficace pour les requêtes ou les actions spécifiques aux autorisations sous-jacentes non compatibles.
Pour obtenir la liste des rôles partiellement compatibles et des autorisations non compatibles associées, consultez la page Rôles IAM partiellement compatibles.
L'utilisation d'un rôle IAM non compatible dans une règle d'entrée ou de sortie rend la règle inefficace.
Pour obtenir la liste des rôles non compatibles, consultez la section Rôles IAM non compatibles.
Si vous souhaitez utiliser un rôle personnalisé dans les règles d'entrée et de sortie, assurez-vous qu'il ne contient que les autorisations compatibles qui font partie des services compatibles. Pour obtenir la liste des autorisations non compatibles avec les services compatibles, consultez les pages Rôles IAM partiellement compatibles et Rôles IAM non compatibles.
Vous ne pouvez pas utiliser les rôles personnalisés que vous avez créés au niveau du projet. En d'autres termes, vous ne pouvez pas utiliser un rôle personnalisé au format suivant: projects/PROJECT_ID/roles/IDENTIFIER
.
Rôles IAM partiellement pris en charge
Le tableau suivant répertorie les rôles IAM partiellement compatibles de services spécifiques:
Product | Rôles partiellement pris en charge | Autorisations non compatibles |
---|---|---|
Cloud SQL |
|
|
|
|
|
Cloud Storage |
|
|
Identity and Access Management |
|
|
Resource Manager |
|
|
|
|
|
|
|
|
Spanner |
|
|
Autres rôles partiellement compatibles |
|
|
Rôles IAM non compatibles
Le tableau suivant répertorie les rôles IAM non compatibles de services spécifiques:
Product | Rôles non compatibles |
---|---|
Identity and Access Management |
|
Limites
Vous ne pouvez pas utiliser une règle d'entrée ou de sortie basée sur les rôles pour autoriser les requêtes à définir la stratégie d'autorisation IAM d'un projet au-delà de la limite du périmètre.
Si vous rencontrez des problèmes de chargement de la page de modification des services dans la console Google Cloud en raison de restrictions VPC Service Controls, l'utilisation de rôles IAM dans les règles d'entrée peut ne pas résoudre le problème. Cette limitation n'affecte pas la page en lecture seule de ces services.
Lorsqu'une requête implique plusieurs types de ressources provenant de différents projets, la règle d'entrée ou de sortie qui utilise des rôles IAM peut ne pas fonctionner. Par exemple, lorsque vous lancez un modèle Dataflow qui lit du texte à partir de Cloud Storage dans un autre projet.
Si vous supprimez un rôle personnalisé après l'avoir référencé dans une règle d'entrée ou de sortie d'un périmètre, celui-ci ne peut plus être modifié.