Cette page explique comment résoudre les problèmes liés aux stratégies d'autorisation, de refus et de limite d'accès des comptes principaux dans Identity and Access Management (IAM).
Utiliser Policy Troubleshooter
Si vous devez résoudre des problèmes d'accès pour un compte principal spécifique, utilisez l'outil Policy Troubleshooter pour IAM.
Policy Troubleshooter vous aide à comprendre si un compte principal peut accéder à une ressource. À l'aide d'un compte principal, d'une ressource et d'une autorisation, Policy Troubleshooter examine les stratégies d'autorisation, de refus et de limite d'accès des comptes principaux (PAB, Principal Access Boundary) qui ont un impact sur l'accès du compte principal. Il vous indique ensuite si, en fonction de ces stratégies, le compte principal peut utiliser l'autorisation spécifiée pour accéder à la ressource. Il répertorie également les stratégies pertinentes et explique leur impact sur l'accès du compte principal.Pour découvrir comment utiliser Policy Troubleshooter pour résoudre les problèmes liés aux stratégies d'autorisation, de refus et de limite d'accès des comptes principaux, consultez la page Résoudre les problèmes liés aux autorisations IAM.
Afficher toutes les stratégies d'autorisation et de refus qui s'appliquent à une ressource
Dans Google Cloud, les règles d'autorisation et de refus suivantes affectent l'accès à une ressource:
- La stratégie d'autorisation de la ressource
- Les règles de refus de la ressource, le cas échéant
- Les stratégies d'autorisation du projet, du dossier et de l'organisation parent de la ressource, le cas échéant
- Les stratégies de refus du projet, du dossier et de l'organisation parent de la ressource, le cas échéant
Les stratégies d'autorisation et de refus des projets, dossiers et organisations parents affectent l'accès à une ressource en raison de l'héritage des stratégies. Lorsque vous associez une stratégie d'autorisation ou de refus à un projet, un dossier ou une organisation, cette stratégie s'applique également à toutes les ressources de ce projet, ce dossier ou cette organisation.
Par exemple, si une stratégie de refus pour une organisation indique qu'un compte principal ne peut pas utiliser une autorisation spécifique, le compte principal ne peut utiliser cette autorisation sur aucune ressource de l'organisation. Cette règle s'applique même si les dossiers et les projets de cette organisation sont associés à des stratégies de refus plus permissives ou à des stratégies d'autorisation qui accordent cette autorisation au compte principal.
De même, si une stratégie d'autorisation pour un projet accorde une autorisation spécifique à un compte principal, celui-ci dispose de cette autorisation pour n'importe quelle ressource du projet, à condition que cette autorisation ne lui soit pas refusée.
L'union de toutes ces stratégies est appelée stratégie applicable ou stratégie en vigueur pour la ressource.
Dans Google Cloud, vous pouvez obtenir la liste de toutes les stratégies d'autorisation et de refus qui affectent l'accès à un projet à l'aide de la commande gcloud beta projects
get-ancestors-iam-policy
avec l'option --include-deny
. Utilisées conjointement, ces stratégies constituent la stratégie applicable au projet. Vous pouvez examiner chaque stratégie pour voir comment elle affecte l'accès du compte principal.
gcloud
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
PROJECT_ID
: ID de votre projet Google Cloud. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
.
Exécutez la commande
gcloud beta projects get-ancestors-iam-policy
:
Linux, macOS ou Cloud Shell
gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json
Windows (PowerShell)
gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json
Windows (cmd.exe)
gcloud beta projects get-ancestors-iam-policy PROJECT_ID --include-deny --format=json
La réponse contient les règles d'autorisation et de refus du projet. Tous les dossiers ancêtres du projet et à l'organisation. L'exemple suivant présente des règles d'autorisation pour l'organisation 1234567890123
et le projet my-project
, ainsi qu'une règle de refus pour le projet my-project
:
[ { "id": "1234567890123", "policy": { "bindings": [ { "members": [ "group:cloud-admins@example.com" ], "role": "roles/iam.denyAdmin" }, { "members": [ "user:raha@example.com" ], "role": "roles/iam.serviceAccountAdmin" } ], "etag": "BwXW6Eab7TI=", "version": 1 }, "type": "organization" }, { "id": "my-project", "policy": { "bindings": [ { "members": [ "group:cloud-admins@example.com" ], "role": "roles/owner" } ], "etag": "BwXXjOM7L6M=", "type": "project" } }, { "id": "my-project", "policy": { "createTime": "2022-02-14T21:46:35.865279Z", "displayName": "My deny policy", "etag": "MTgyMzg2ODcwNTEyMjMxMTM3Mjg=", "kind": "DenyPolicy", "name": "policies/cloudresourcemanager.googleapis.com%2Fprojects%2F123456789012/denypolicies/my-deny-policy", "rules": [ { "denyRule": { "deniedPermissions": [ "iam.googleapis.com/serviceAccounts.create" ], "deniedPrincipals": [ "user:raha@example.com" ] }, "description": "Prevent service account creation" } ], "uid": "c83e3dc3-d8a6-6f51-4018-814e9f200b05", "updateTime": "2022-02-14T21:46:35.865279Z" }, "type": "project" } ]
Dans cet exemple, Raha se voit attribuer le rôle d'administrateur de compte de service (roles/iam.serviceAccountAdmin
) sur l'organisation, mais le projet dispose d'une règle de refus qui empêche Raha d'utiliser l'autorisation iam.googleapis.com/serviceAccounts.create
. Par conséquent, si Raha tente de créer un compte de service dans le projet my-project
, la requête sera refusée.
Dans certains cas, vous devrez peut-être afficher uniquement la stratégie d'autorisation applicable pour une ressource, par exemple si votre organisation n'utilise pas de stratégies de refus. Dans ce cas, vous pouvez utiliser les méthodes suivantes pour afficher la stratégie d'autorisation applicable :
Afficher la stratégie IAM de la ressource dans la console Google Cloud La console Google Cloud affiche automatiquement la stratégie applicable de chaque ressource.
Pour savoir comment afficher la stratégie IAM d'une ressource dans la console Google Cloud, consultez la section Afficher l'accès actuel.
Utilisez l'API Cloud Asset pour obtenir la stratégie applicable de la ressource. Pour en savoir plus, consultez la page Afficher des stratégies IAM applicables.
Rechercher des stratégies d'autorisation
Si vous devez localiser une liaison de rôle spécifique dans une stratégie d'autorisation, vous pouvez effectuer une recherche dans la stratégie d'autorisation.
L'inventaire des éléments cloud vous permet de rechercher des stratégies IAM pour des liaisons de rôles correspondant aux paramètres spécifiés. Vous pouvez utiliser divers paramètres de recherche, y compris les suivants :
- Type de ressource
- Type de compte principal
- Rôle
- Projet
- Dossier
- Organisation
Pour en savoir plus, consultez la page Rechercher des stratégies d'autorisation IAM.