Cette page explique comment accorder, modifier et révoquer l'accès d'un compte principal à un seul compte de service. Pour gérer l'accès d'un compte principal à tous les comptes de service d'un projet, d'un dossier ou d'une organisation, vous devez gérer son accès au niveau du projet, du dossier ou de l'organisation.
Dans Identity and Access Management (IAM), l'accès est géré via des stratégies d'autorisation, également appelées "stratégies IAM". Une stratégie d'autorisation est associée à une ressource Google Cloud. Chaque stratégie d'autorisation contient un ensemble de liaisons de rôles qui associent un ou plusieurs comptes principaux, tels que des utilisateurs ou des comptes de service, à un rôle IAM. Ces liaisons de rôles accordent les rôles spécifiés aux comptes principaux, à la fois sur la ressource associée à la stratégie d'autorisation et sur tous les descendants de cette ressource. Pour en savoir plus sur les stratégies d'autorisation, consultez la section Comprendre les stratégies d'autorisation.
Les comptes de service sont à la fois des ressources auxquelles d'autres comptes principaux peuvent être autorisés à accéder et des comptes principaux auxquels l'accès à d'autres ressources peut être accordé. Cette page traite les comptes de service comme des ressources et explique comment autoriser d'autres comptes principaux à y accéder. Pour savoir comment accorder à un compte de service l'accès à d'autres ressources, consultez les guides suivants :
- Pour accorder à un compte de service l'accès à un projet, un dossier ou une organisation, consultez la section Gérer l'accès aux projets, aux dossiers et aux organisations.
- Pour autoriser un compte de service à accéder à d'autres ressources, consultez la page Gérer l'accès à d'autres ressources.
Cette page explique comment gérer les accès aux ressources à l'aide de la console Google Cloud Console, de Google Cloud CLI et de l'API REST. Vous pouvez également gérer les accès à l'aide des bibliothèques clientes IAM.
Avant de commencer
Enable the IAM API.
En savoir plus sur les comptes de service
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer l'accès à un compte de service, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur de compte de service (roles/iam.serviceAccountAdmin
) pour le compte de service ou pour le projet auquel il appartient.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour gérer l'accès à un compte de service. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour gérer l'accès à un compte de service :
-
iam.serviceAccounts.get
-
iam.serviceAccounts.list
-
iam.serviceAccounts.getIamPolicy
-
iam.serviceAccounts.setIamPolicy
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Afficher l'accès actuel
La section suivante explique comment utiliser la console Google Cloud, la CLI gcloud et l'API REST pour afficher qui a accès à un compte de service. Vous pouvez également afficher les accès à l'aide des bibliothèques clientes IAM pour obtenir la stratégie d'autorisation du compte de service.
Console
Dans Google Cloud Console, accédez à la page Comptes de service.
Sélectionnez un projet.
Cliquez sur l'adresse e-mail du compte de service.
Accédez à l'onglet Autorisations. La section Comptes principaux ayant accès à ce compte de service répertorie tous les comptes principaux auxquels un rôle a été attribué sur le compte de service.
Cette liste inclut les comptes principaux dont l'accès provient de rôles attribués sur des ressources parentes. Pour en savoir plus sur l'héritage des stratégies, consultez la section Héritage des stratégies et hiérarchie des ressources.
Facultatif: Pour afficher les attributions de rôles sur les agents de service, cochez la case Inclure les attributions de rôles fournies par Google.
gcloud
Pour savoir qui a accès à votre compte de service, obtenez la stratégie d'autorisation pour le compte de service. Pour apprendre à interpréter les stratégies d'autorisation, consultez la page Comprendre les stratégies d'autorisation.
Pour obtenir la stratégie d'autorisation du compte de service, exécutez la commande get-iam-policy
pour le compte de service :
gcloud iam service-accounts get-iam-policy SA_ID --format=FORMAT > PATH
Indiquez les valeurs suivantes :
SA_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.FORMAT
: format de la stratégie. Utilisezjson
ouyaml
.PATH
: le chemin d'accès à un nouveau fichier de sortie pour la stratégie.
Par exemple, la commande suivante récupère la stratégie du compte de service my-service-account
et l'enregistre dans votre répertoire d'accueil au format JSON :
gcloud iam service-accounts get-iam-policy my-service-account --format json > ~/policy.json
REST
Pour savoir qui a accès à votre compte de service, obtenez la stratégie d'autorisation pour le compte de service. Pour apprendre à interpréter les stratégies d'autorisation, consultez la page Comprendre les stratégies d'autorisation.
La méthode serviceAccounts.getIamPolicy
permet d'obtenir la stratégie d'autorisation d'un compte de service.
Avant d'utiliser les données de requête 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
.SA_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.POLICY_VERSION
: version de la stratégie à renvoyer. Les requêtes doivent spécifier la version de stratégie la plus récente, qui est la version 3. Pour plus d'informations, consultez la section Spécifier une version de stratégie lors de l'obtention d'une stratégie.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:getIamPolicy
Corps JSON de la requête :
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient la stratégie d'autorisation du compte de service. Exemple :
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Attribuer ou révoquer un rôle unique
Vous pouvez utiliser la console Google Cloud et la CLI gcloud pour accorder ou révoquer rapidement un rôle unique pour un seul compte principal, sans modifier directement la stratégie d'autorisation du compte de service. Les types de membres courants incluent les comptes principaux Google, les comptes de service, les Google Groupes et les domaines. Pour obtenir la liste de tous les types de comptes principaux, consultez la page Concepts liés à l'identité.
En règle générale, les modifications apportées aux stratégies prennent effet en moins de deux minutes. Toutefois, dans certains cas, la propagation des modifications dans le système peut prendre sept minutes ou plus.
Si vous avez besoin d'aide pour identifier le rôle prédéfini le plus approprié, consultez la section Choisir des rôles prédéfinis.
Attribuer un rôle unique
Pour attribuer un seul rôle à un compte principal, procédez comme suit :
Console
Dans Google Cloud Console, accédez à la page Comptes de service.
Sélectionnez un projet.
Cliquez sur l'adresse e-mail du compte de service.
Accédez à l'onglet Autorisations, puis recherchez la section Comptes principaux ayant accès à ce compte de service.
Sélectionnez un compte principal auquel attribuer un rôle :
Pour attribuer un rôle à un compte principal qui dispose déjà d'autres rôles sur le compte de service, recherchez une ligne contenant le compte principal, puis cliquez sur
Modifier le compte principal sur cette ligne, puis cliquez sur Ajouter un autre rôle.Pour attribuer un rôle à un agent de service, cochez la case Inclure les attributions de rôles fournies par Google pour afficher son adresse e-mail.
Pour attribuer un rôle à un compte principal qui ne dispose d'aucun rôle sur le compte de service, cliquez sur
Accorder l'accès, puis saisissez un identifiant pour le compte principal (par exemple,my-user@example.com
).
Sélectionnez un rôle à attribuer dans la liste déroulante. Pour respecter les bonnes pratiques de sécurité, choisissez un rôle qui n'inclut que les autorisations dont votre compte principal a besoin.
Facultatif : ajoutez une condition au rôle.
Cliquez sur Enregistrer. Le rôle est attribué au compte principal sur le compte de service.
gcloud
Pour attribuer rapidement un rôle à un compte principal, exécutez la commande add-iam-policy-binding
:
gcloud iam service-accounts add-iam-policy-binding SA_ID \ --member=PRINCIPAL --role=ROLE_NAME \ --condition=CONDITION
Indiquez les valeurs suivantes :
SA_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.PRINCIPAL
: l'identifiant du compte principal, qui se présente généralement sous la forme suivante :PRINCIPAL-TYPE:ID
. Par exemple,user:my-user@example.com
. Pour obtenir la liste complète des valeurs possibles pourPRINCIPAL
, consultez la section Identifiants principaux.Pour le type de compte principal
user
, le nom de domaine indiqué dans l'identifiant doit être un domaine Google Workspace ou Cloud Identity. Pour savoir comment configurer un domaine Cloud Identity, consultez la présentation de Cloud Identity.ROLE_NAME
: nom du rôle que vous souhaitez attribuer. Utilisez l'un des formats suivants :- Rôles prédéfinis :
roles/SERVICE.IDENTIFIER
- Rôles personnalisés au niveau du projet :
projects/PROJECT_ID/roles/IDENTIFIER
- Rôles personnalisés au niveau de l'organisation :
organizations/ORG_ID/roles/IDENTIFIER
Pour obtenir la liste complète des rôles prédéfinis, consultez la page Comprendre les rôles.
- Rôles prédéfinis :
CONDITION
: facultatif. Condition à ajouter à la liaison de rôle. Pour en savoir plus sur les conditions, consultez la présentation des conditions.
Par exemple, pour attribuer le rôle "Utilisateur du compte de service" à l'utilisateurmy-user@example.compour le compte de service my-service-account@my-project.iam.gserviceaccount.com
:
gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \ --member=user:my-user@example.com --role=roles/iam.serviceAccountUser
Révoquer un rôle unique
Pour révoquer un seul rôle d'un compte principal, procédez comme suit :
Console
Dans Google Cloud Console, accédez à la page Comptes de service.
Sélectionnez un projet.
Cliquez sur l'adresse e-mail du compte de service.
Accédez à l'onglet Autorisations, puis recherchez la section Comptes principaux ayant accès à ce compte de service.
Recherchez la ligne contenant le compte principal dont vous souhaitez révoquer l'accès. Cliquez ensuite sur
Modifier le compte principal sur cette ligne.Cliquez sur le bouton Supprimer (
) correspondant au rôle que vous souhaitez révoquer, puis cliquez sur Enregistrer.
gcloud
Pour révoquer rapidement un rôle d'un utilisateur, exécutez la commande remove-iam-policy-binding
:
gcloud iam service-accounts remove-iam-policy-binding SA_ID \ --member=PRINCIPAL --role=ROLE_NAME
Indiquez les valeurs suivantes :
SA_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.PRINCIPAL
: l'identifiant du compte principal, qui se présente généralement sous la forme suivante :PRINCIPAL-TYPE:ID
. Par exemple,user:my-user@example.com
. Pour obtenir la liste complète des valeurs possibles pourPRINCIPAL
, consultez la section Identifiants principaux.Pour le type de compte principal
user
, le nom de domaine indiqué dans l'identifiant doit être un domaine Google Workspace ou Cloud Identity. Pour savoir comment configurer un domaine Cloud Identity, consultez la présentation de Cloud Identity.ROLE_NAME
: nom du rôle que vous souhaitez révoquer. Utilisez l'un des formats suivants :- Rôles prédéfinis :
roles/SERVICE.IDENTIFIER
- Rôles personnalisés au niveau du projet :
projects/PROJECT_ID/roles/IDENTIFIER
- Rôles personnalisés au niveau de l'organisation :
organizations/ORG_ID/roles/IDENTIFIER
Pour obtenir la liste complète des rôles prédéfinis, consultez la page Comprendre les rôles.
- Rôles prédéfinis :
Par exemple, pour révoquer le rôle "Utilisateur du compte de service" associé à l'utilisateurmy-user@example.compour le compte de service my-service-account@my-project.iam.gserviceaccount.com
:
gcloud iam service-accounts remove-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \ --member=user:my-user@example.com --role=roles/iam.serviceAccountUser
Attribuer ou révoquer plusieurs rôles à l'aide de la console Google Cloud
Vous pouvez attribuer et révoquer plusieurs rôles pour un même compte principal à l'aide de la console Google Cloud :
Dans Google Cloud Console, accédez à la page Comptes de service.
Sélectionnez un projet.
Cliquez sur l'adresse e-mail du compte de service.
Accédez à l'onglet Autorisations, puis recherchez la section Comptes principaux ayant accès à ce compte de service.
Sélectionnez le compte principal dont vous souhaitez modifier le rôle :
Pour modifier les rôles d'un compte principal disposant déjà de rôles sur le compte de service, recherchez une ligne contenant le compte principal, puis cliquez sur
Modifier le compte principal sur cette ligne, puis sur Ajouter un autre rôle.Pour modifier les rôles d'un agent de service, cochez la case Inclure les attributions de rôles fournies par Google pour afficher son adresse e-mail.
Pour attribuer des rôles à un compte principal qui ne dispose d'aucun rôle sur le compte de service, cliquez sur
Accorder l'accès, puis saisissez l'adresse e-mail du compte principal ou un autre identifiant.
Modifiez les rôles du compte principal :
- Pour attribuer un rôle à un compte principal qui ne dispose pas de rôles existants sur la ressource, cliquez sur Sélectionner un rôle, puis sélectionnez un rôle à attribuer dans la liste déroulante.
- Pour attribuer un rôle supplémentaire au compte principal, cliquez sur Ajouter un autre rôle, puis sélectionnez un rôle à attribuer dans la liste déroulante.
- Pour remplacer l'un des rôles du compte principal par un autre rôle, cliquez sur le rôle existant, puis choisissez un autre rôle à attribuer dans la liste déroulante.
- Pour révoquer l'un des rôles du compte principal, cliquez sur le bouton Supprimer pour chaque rôle à révoquer.
Vous pouvez également ajouter une condition à un rôle, modifier la condition d'un rôle ou supprimer la condition d'un rôle.
Cliquez sur Enregistrer.
Attribuer ou révoquer plusieurs rôles de manière automatisée
Pour effectuer des modifications d'accès à grande échelle impliquant l'attribution et la révocation de plusieurs rôles pour plusieurs comptes principaux, utilisez le modèle lecture-modification-écriture pour mettre à jour la stratégie d'autorisation du compte de service :
- Lisez la stratégie d'autorisation actuelle en appelant
getIamPolicy()
. - Modifiez la stratégie d'autorisation, à l’aide d’un éditeur de texte ou de façon automatisée, afin d'ajouter ou de supprimer des comptes principaux ou des liaisons de rôles.
- Écrivez la stratégie d'autorisation mise à jour en appelant
setIamPolicy()
.
Cette section explique comment utiliser gcloud CLI et l'API REST pour mettre à jour la stratégie d'autorisation. Vous pouvez également mettre à jour la stratégie d'autorisation à l'aide des bibliothèques clientes IAM.
En règle générale, les modifications apportées aux stratégies prennent effet en moins de deux minutes. Toutefois, dans certains cas, la propagation des modifications dans le système peut prendre sept minutes ou plus.
Obtenir la stratégie d'autorisation actuelle
gcloud
Pour obtenir la stratégie d'autorisation du compte de service, exécutez la commande get-iam-policy
pour le compte de service :
gcloud iam service-accounts get-iam-policy SA_ID --format=FORMAT > PATH
Indiquez les valeurs suivantes :
SA_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.FORMAT
: format de la stratégie d'autorisation. Utilisezjson
ouyaml
.PATH
: le chemin d'accès à un nouveau fichier de sortie pour la stratégie d'autorisation.
Par exemple, la commande suivante récupère la stratégie d'autorisation du compte de service my-service-account
et l'enregistre dans votre répertoire d'accueil au format JSON :
gcloud iam service-accounts get-iam-policy my-service-account --format json > ~/policy.json
REST
La méthode serviceAccounts.getIamPolicy
permet d'obtenir la stratégie d'autorisation d'un compte de service.
Avant d'utiliser les données de requête 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
.SA_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.POLICY_VERSION
: version de la stratégie à renvoyer. Les requêtes doivent spécifier la version de stratégie la plus récente, qui est la version 3. Pour plus d'informations, consultez la section Spécifier une version de stratégie lors de l'obtention d'une stratégie.
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:getIamPolicy
Corps JSON de la requête :
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient la stratégie d'autorisation du compte de service. Exemple :
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Enregistrez la réponse dans un fichier du type approprié (json
ou yaml
).
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Modifier la stratégie d'autorisation
De façon automatisée ou à l'aide d'un éditeur de texte, modifiez la copie locale de la stratégie d'autorisation de votre compte de service afin de refléter les rôles que vous souhaitez accorder ou révoquer aux utilisateurs donnés.
Pour vous assurer de ne pas écraser les autres modifications, ne modifiez pas et ne supprimez pas le champ etag
de la stratégie d'autorisation. Le champ etag
identifie l'état actuel de la stratégie d'autorisation. Lorsque vous définissez la stratégie d'autorisation modifiée, Cloud IAM compare la valeur etag
de la requête avec la valeur etag
existante et n'écrit la stratégie d'autorisation que si les valeurs correspondent.
Pour modifier les rôles qu'une stratégie d'autorisation accorde, vous devez modifier les liaisons de rôles dans la stratégie d'autorisation. Les liaisons de rôle ont le format suivant:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ], "conditions:" { CONDITIONS } }
Les espaces réservés prennent les valeurs suivantes :
ROLE_NAME
: nom du rôle que vous souhaitez attribuer. Utilisez l'un des formats suivants :- Rôles prédéfinis :
roles/SERVICE.IDENTIFIER
- Rôles personnalisés au niveau du projet :
projects/PROJECT_ID/roles/IDENTIFIER
- Rôles personnalisés au niveau de l'organisation :
organizations/ORG_ID/roles/IDENTIFIER
Pour obtenir la liste complète des rôles prédéfinis, consultez la page Comprendre les rôles.
- Rôles prédéfinis :
PRINCIPAL_1
,PRINCIPAL_2
et...PRINCIPAL_N
: identifiants des principaux auxquels vous souhaitez accorder le rôle.Les identifiants principaux se présentent généralement sous la forme suivante :
PRINCIPAL-TYPE:ID
. Exemple :user:my-user@example.com
Pour obtenir la liste complète des valeurs possibles pourPRINCIPAL
, consultez la section Identifiants principaux.Pour le type de compte principal
user
, le nom de domaine indiqué dans l'identifiant doit être un domaine Google Workspace ou Cloud Identity. Pour savoir comment configurer un domaine Cloud Identity, consultez la présentation de Cloud Identity.CONDITIONS
: facultatif. Toutes les conditions qui spécifient quand l'accès sera accordé.
Attribuer un rôle
Pour attribuer des rôles à vos comptes principaux, modifiez les liaisons de rôles dans la stratégie d'autorisation. Pour en savoir plus sur les rôles que vous pouvez attribuer, consultez la section Comprendre les rôles ou Afficher les rôles pouvant être attribués pour le compte de service. Si vous avez besoin d'aide pour identifier les rôles prédéfinis les plus appropriés, consultez la section Choisir des rôles prédéfinis.
Vous pouvez éventuellement utiliser des conditions pour n'accorder des rôles que lorsque certaines conditions sont remplies.
Pour accorder un rôle déjà inclus dans la stratégie d'autorisation, ajoutez le compte principal à une liaison de rôle existante :
gcloud
Modifiez la stratégie d'autorisation en ajoutant le compte principal à une liaison de rôle existante. Notez que cette modification de stratégie ne prendra effet que lorsque vous aurez défini la stratégie d'autorisation mise à jour.
Par exemple, imaginons que la stratégie d'autorisation contienne la liaison de rôle suivante, qui attribue le rôle "Utilisateur du compte de service" (roles/iam.serviceAccountUser
) à Kai:
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com"
]
}
Pour accorder ce même rôle à Raha, ajoutez Raha à la liaison de rôle existante:
{ "role": "roles/iam.serviceAccountUser", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
REST
Modifiez la stratégie d'autorisation en ajoutant le compte principal à une liaison de rôle existante. Notez que cette modification de stratégie ne prendra effet que lorsque vous aurez défini la stratégie d'autorisation mise à jour.
Par exemple, imaginons que la stratégie d'autorisation contienne la liaison de rôle suivante, qui attribue le rôle "Utilisateur du compte de service" (roles/iam.serviceAccountUser
) à Kai:
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com"
]
}
Pour accorder ce même rôle à Raha, ajoutez Raha à la liaison de rôle existante:
{ "role": "roles/iam.serviceAccountUser", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
Pour accorder un rôle qui n'est pas encore inclus dans la stratégie, d'autorisation ajoutez une liaison de rôle :
gcloud
Modifiez la stratégie d'autorisation en ajoutant une nouvelle liaison de rôle qui accorde le rôle au compte principal. Cette modification ne prendra effet que lorsque vous aurez défini la stratégie d'autorisation mise à jour.
Par exemple, pour accorder le rôle "Créateur de jetons du compte de service" (roles/iam.serviceAccountTokenCreator
) à Raha, ajoutez la liaison de rôle suivante au tableau bindings
de la stratégie d'autorisation:
{
"role": "roles/iam.serviceAccountTokenCreator",
"members": [
"user:raha@example.com"
]
}
REST
Modifiez la stratégie d'autorisation en ajoutant une nouvelle liaison de rôle qui accorde le rôle au compte principal. Cette modification ne prendra effet que lorsque vous aurez défini la stratégie d'autorisation mise à jour.
Par exemple, pour accorder le rôle "Créateur de jetons du compte de service" (roles/iam.serviceAccountTokenCreator
) à Raha, ajoutez la liaison de rôle suivante au tableau bindings
de la stratégie d'autorisation:
{
"role": "roles/iam.serviceAccountTokenCreator",
"members": [
"user:raha@example.com"
]
}
Révoquer un rôle
Pour révoquer un rôle, supprimez le compte principal de la liaison de rôle. S'il n'y a pas d'autres comptes principaux dans la liaison de rôle, supprimez toute la liaison de rôle de la stratégie d'autorisation.
gcloud
Modifiez la stratégie d'autorisation en supprimant le compte principal ou la liaison de rôle entière. Cette modification ne prendra effet que lorsque vous aurez défini la stratégie d'autorisation mise à jour.
Par exemple, imaginons que la stratégie d'autorisation contienne la liaison de rôle suivante, qui attribue à Kai et à Raha le rôle "Utilisateur du compte de service" (roles/iam.serviceAccountUser
):
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com",
"user:raha@example.com"
]
}
Pour révoquer le rôle de Kai, supprimez son identifiant de compte principal de la liaison de rôle:
{
"role": "roles/iam.serviceAccountUser",
"members": [
user:raha@example.com
]
}
Pour révoquer le rôle de Kai et de Raha, supprimez la liaison de rôle de la stratégie d'autorisation.
REST
Modifiez la stratégie d'autorisation en supprimant le compte principal ou la liaison de rôle entière. Cette modification ne prendra effet que lorsque vous aurez défini la stratégie d'autorisation mise à jour.
Par exemple, imaginons que la stratégie d'autorisation contienne la liaison de rôle suivante, qui attribue à Kai et à Raha le rôle "Utilisateur du compte de service" (roles/iam.serviceAccountUser
):
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com",
"user:raha@example.com"
]
}
Pour révoquer le rôle de Kai, supprimez son identifiant de compte principal de la liaison de rôle:
{
"role": "roles/iam.serviceAccountUser",
"members": [
user:raha@example.com
]
}
Pour révoquer le rôle de Kai et de Raha, supprimez la liaison de rôle de la stratégie d'autorisation.
Définir la stratégie d'autorisation
Après avoir modifié la stratégie d'autorisation pour accorder et révoquer des rôles, appelez setIamPolicy()
pour effectuer les mises à jour.
gcloud
Pour définir la stratégie d'autorisation de la ressource, exécutez la commande set-iam-policy
pour le compte de service :
gcloud iam service-accounts set-iam-policy SA_ID PATH
Indiquez les valeurs suivantes :
SA_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.PATH
: le chemin d'accès à un fichier contenant la nouvelle stratégie d'autorisation.
La réponse contient la stratégie d'autorisation mise à jour :
Par exemple, la commande suivante définit la stratégie d'autorisation stockée dans policy.json
en tant que stratégie d'autorisation pour le compte de service my-service-account@my-project.iam.gserviceaccount.com
:
gcloud iam service-accounts set-iam-policy my-service-account@my-project.iam.gserviceaccount.com \ ~/policy.json
REST
La méthode serviceAccounts.setIamPolicy
définit une stratégie d'autorisation mise à jour pour le compte de service.
Avant d'utiliser les données de requête 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
.SA_ID
: ID de votre compte de service. Il peut s'agir de l'adresse e-mail du compte de service au formatSA_NAME@PROJECT_ID.iam.gserviceaccount.com
ou de l'ID numérique unique du compte de service.-
POLICY
: représentation JSON de la stratégie que vous souhaitez définir. Pour en savoir plus sur le format d'une stratégie, consultez la documentation de référence sur les stratégies.Par exemple, pour définir la stratégie d'autorisation présentée à l'étape précédente, remplacez
policy
par ce qui suit :{ "version": 1, "etag": "BwUqLaVeua8=", "bindings": [ { "role": "roles/iam.serviceAccountUser", "members": [ "group:my-group@example.com" ] }, { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Méthode HTTP et URL :
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:setIamPolicy
Corps JSON de la requête :
{ "policy": POLICY }
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient la stratégie d'autorisation mise à jour.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Java.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour IAM, consultez la page Bibliothèques clientes IAM. Pour en savoir plus, consultez la documentation de référence de l'API Cloud IAM Python.
Pour vous authentifier auprès d'IAM, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Étape suivante
- Découvrez les rôles à attribuer pour permettre aux comptes principaux de s'authentifier en tant que comptes de service.
- Découvrez comment choisir les rôles prédéfinis les plus appropriés.
- Consultez la page Bonnes pratiques d'utilisation des comptes de service pour apprendre à utiliser les comptes de service en toute sécurité.
- Découvrez comment gérer l'accès aux projets, aux dossiers et aux organisations.
- Découvrez les étapes générales de gestion de l'accès à d'autres ressources.
- Découvrez comment rendre l'accès d'un compte principal conditionnel avec des liaisons de rôle conditionnelles.
Faites l'essai
Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
Essai gratuit