Cette page explique comment attribuer des rôles Identity and Access Management (IAM) à des comptes principaux sur les ressources Secure Source Manager. Pour savoir comment attribuer des rôles à d'autres ressources Google Cloud , consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Les instances et les dépôts Secure Source Manager ont leurs propres rôles. La première fois que vous accordez des rôles d'instance dans un projet, vous devez utiliser l'outil gcloud CLI ou l'API REST. Vous pouvez accorder des rôles de dépôt avec l'outil gcloud CLI, l'API REST ou l'interface Web Secure Source Manager.
Une fois que vous avez attribué un rôle Secure Source Manager à l'aide de gcloud CLI, de l'interface Web ou de l'API REST, le rôle est visible pour votre projet dans la console Google Cloud .
Rôles requis
Pour obtenir les autorisations nécessaires pour mettre à jour la stratégie IAM sur une instance ou un dépôt, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Attribuez des rôles IAM à l'instance :
Propriétaire d'instances Secure Source Manager (
roles/securesourcemanager.instanceOwner
) sur l'instance Secure Source Manager. -
Attribuez des rôles IAM au dépôt :
Administrateur de dépôts Secure Source Manager (
roles/securesourcemanager.repoAdmin
) sur le dépôt
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour savoir comment accorder des rôles Secure Source Manager, consultez Contrôle des accès avec IAM et Accorder aux utilisateurs l'accès à l'instance.
Spécifier des comptes principaux
Un compte principal représente une identité pouvant accéder à une ressource. Chaque compte principal possède son propre identifiant. Les identifiants principaux se présentent sous la forme suivante :
PRINCIPAL-TYPE:ID
Par exemple, user:my-user@example.com
. Pour en savoir plus sur les comptes principaux, consultez Fonctionnement d'IAM.
Pour le type de compte principal user
, le nom de domaine indiqué dans l'identifiant doit être un domaine Google Workspace ou Cloud Identity, sauf si vous utilisez la fédération des identités des employés. Pour savoir comment configurer un domaine Cloud Identity, consultez la présentation de Cloud Identity.
Principaux de la fédération d'identité de personnel
Si vous utilisez la fédération d'identité des employés pour accéder à Secure Source Manager, les comptes principaux sont représentés différemment. Pour savoir comment accorder l'accès aux comptes principaux qui représentent des groupes d'identités, consultez Représenter les utilisateurs de pools de personnel dans les stratégies IAM.
Par exemple, la commande suivante accorde à l'utilisateur user@example.com
le rôle Accesseur d'instance (roles/securesourcemanager.instanceAccessor
) dans le pool d'identités de personnel my-pool
sur l'instance my-instance
dans le projet my-project
de la région us-central1
:
gcloud beta source-manager instances add-iam-policy-binding my-instance \
--project=my-project \
--region=us-central1 \
--member=principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com \
--role=roles/securesourcemanager.instanceAccessor
Vous pouvez accorder des autorisations aux utilisateurs ou aux groupes de votre pool d'identités de personnel en fonction des attributs de votre fournisseur d'identité (IdP), ou utiliser le Common Expression Language (CEL) pour mapper vos attributs OIDC à des attributs personnalisés afin de définir une stratégie d'autorisation dans votre stratégie IAM. Pour en savoir plus sur les mappages d'attributs, consultez Mappages d'attributs.
Attribuer ou révoquer des rôles d'instance
Pour attribuer ou révoquer des rôles d'instance, utilisez le modèle lecture-modification-écriture pour mettre à jour la stratégie d'autorisation de la ressource :
- 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()
.
gcloud
Pour lire la stratégie d'autorisation actuelle et l'enregistrer dans
/tmp/instances.json
, exécutez la commande suivante :gcloud beta source-manager instances get-iam-policy INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ --format=json > /tmp/instance.json
Remplacez les éléments suivants :
INSTANCE_ID
par l'ID de l'instance.PROJECT_ID
par l'ID ou le numéro du projet de l'instance.REGION
avec la région dans laquelle se trouve l'instance. Consultez la documentation sur les emplacements pour connaître les régions Secure Source Manager disponibles.
Le résultat inclura toutes les liaisons existantes ou, si aucune n'existe, la valeur
etag
, comme suit :{ "etag": "BwUjHYKJUiQ=" }
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 instance afin de refléter les rôles que vous souhaitez accorder ou révoquer.
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 champetag
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 valeuretag
de la requête avec la valeuretag
existante et n'écrit la stratégie d'autorisation que si les valeurs correspondent.Pour modifier les rôles accordés par une stratégie d'autorisation, vous devez modifier les liaisons de rôle 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" ] }
Les espaces réservés prennent les valeurs suivantes :
ROLE_NAME
: nom du rôle que vous souhaitez attribuer. Utilisez le format suivant :roles/securesourcemanager.IDENTIFIER
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: identifiants des comptes principaux auxquels vous souhaitez accorder le rôle.
Par exemple, la stratégie suivante attribue le rôle
instanceOwner
àuser1@gmail.com
et le rôleinstanceManager
aux utilisateursuser2@gmail.com
,user3@gmail.com
et au compte de servicemy-other-app@appspot.gserviceaccount.com
.{ "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.instanceOwner", "members": [ "user:user1@gmail.com" ] }, { "role": "roles/resourcemanager.instanceManager", "members": [ "user:user2@gmail.com", "user:user3@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] }
Après avoir modifié la stratégie d'autorisation enregistrée pour accorder et révoquer les rôles sélectionnés, mettez à jour la stratégie d'autorisation de votre instance en exécutant la commande suivante :
gcloud beta source-manager instances set-iam-policy INSTANCE_ID \ --project=PROJECT_ID \ --region=REGION \ /tmp/instance.json
Remplacez les éléments suivants :
INSTANCE_ID
par l'ID de l'instance.PROJECT_ID
par l'ID ou le numéro du projet de l'instance.REGION
avec la région dans laquelle se trouve l'instance. Consultez la documentation sur les emplacements pour connaître les régions Secure Source Manager disponibles.
API
Exécutez la commande
instances.getIamPolicy
suivante pour lire la stratégie actuelle :curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID:getIamPolicy > /tmp/instance.json
Remplacez les éléments suivants :
PROJECT_ID
: ID ou numéro de projet de l'instance.REGION
correspond à la région dans laquelle se trouve l'instance. Consultez la documentation sur les emplacements pour connaître les régions Secure Source Manager disponibles.INSTANCE_ID
: ID de l'instance.
Le résultat inclura toutes les liaisons existantes ou, si aucune n'existe, la valeur
etag
, comme suit :{ "etag": "BwUjHYKJUiQ=" }
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 instance afin de refléter les rôles que vous souhaitez accorder ou révoquer.
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 champetag
identifie l'état actuel de la stratégie d'autorisation. Lorsque vous définissez la stratégie d'autorisation modifiée, IAM compare la valeuretag
de la requête avec la valeuretag
existante et n'écrit la stratégie d'autorisation que si les valeurs correspondent.Pour modifier les rôles accordés par une stratégie d'autorisation, vous devez modifier les liaisons de rôle 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" ] }
Les espaces réservés prennent les valeurs suivantes :
ROLE_NAME
: nom du rôle que vous souhaitez attribuer. Utilisez le format suivant :roles/securesourcemanager.IDENTIFIER
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: identifiants des comptes principaux auxquels vous souhaitez accorder le rôle.
Par exemple, la stratégie suivante attribue le rôle
instanceOwner
àuser1@gmail.com
et le rôleinstanceManager
aux utilisateursuser2@gmail.com
,user3@gmail.com
et au compte de servicemy-other-app@appspot.gserviceaccount.com
.{ "policy": { "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.instanceOwner", "members": [ "user:user1@gmail.com" ] }, { "role": "roles/resourcemanager.instanceManager", "members": [ "user:user2@gmail.com", "user:user3@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] } }
Après avoir modifié la stratégie d'autorisation pour accorder et révoquer les rôles choisis, appelez
instances.setIamPolicy()
pour effectuer les mises à jour.Exécutez la commande
instances.setIamPolicy
suivante pour définir la nouvelle règle sur l'instance.curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID:setIamPolicy \ -d @/tmp/instance.json
Remplacez les éléments suivants :
PROJECT_ID
: ID ou numéro de projet de l'instance.REGION
correspond à la région dans laquelle se trouve l'instance. Consultez la documentation sur les emplacements pour connaître les régions Secure Source Manager disponibles.INSTANCE_ID
: ID de l'instance.
Accorder ou révoquer des rôles de dépôt
Pour attribuer ou révoquer des rôles de dépôt à des utilisateurs et des comptes de service, vous pouvez les attribuer à partir de l'interface Web Secure Source Manager ou utiliser l'API Secure Source Manager pour mettre à jour la règle d'autorisation du dépôt. Pour accorder des rôles de dépôt à des groupes, vous devez utiliser l'API Secure Source Manager.
Les utilisateurs doivent se voir attribuer un rôle au niveau de l'instance avant de pouvoir se voir attribuer des rôles au niveau du dépôt. Pour savoir comment attribuer des rôles d'instance, consultez Attribuer ou révoquer des rôles d'instance.
Interface Web
Pour attribuer des rôles au niveau du dépôt à des utilisateurs ou des comptes de service à l'aide de l'interface Web :
- Accédez à l'URL de l'instance fournie par votre contact Google.
- Sur la page Mes dépôts, sélectionnez votre dépôt.
- Cliquez sur l'onglet Autorisations.
- Dans la section Personnes et autorisations, cliquez sur Ajouter des utilisateurs.
- Dans le champ Ajouter un compte principal, saisissez l'adresse e-mail de l'utilisateur ou du compte de service auquel vous souhaitez attribuer le rôle.
- Dans le menu Attribuer un rôle, sélectionnez le rôle à attribuer.
- Cliquez sur Enregistrer.
Pour ajouter d'autres rôles, cliquez sur l'icône Modifier et ajoutez les rôles à l'aide du menu Attribuer un rôle.
API
La méthode repositories.getIamPolicy
de l'API Secure Source Manager permet d'obtenir la stratégie d'autorisation d'un dépôt.
- Exécutez la commande
repositories.getIamPolicy
suivante pour lire la stratégie actuelle et l'enregistrer dans/tmp/repository.json
:
curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://securesourcemanager.googleapis.com/v1/projects/REPOSITORY_PROJECT/locations/REGION/repositories/REPOSITORY_ID:getIamPolicy > /tmp/repository.json
Remplacez les éléments suivants :
REPOSITORY_PROJECT
: ID ou numéro de projet du dépôt.REGION
: région dans laquelle se trouve le dépôt.REPOSITORY_ID
: ID du dépôt.
Le résultat inclura toutes les liaisons existantes ou, si aucune n'existe, la valeur etag
, comme suit :
{
"etag": "BwUjHYKJUiQ="
}
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 dépôt enregistrée dans
/tmp/repository.json
afin de refléter les rôles que vous souhaitez accorder ou révoquer.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 champetag
identifie l'état actuel de la stratégie d'autorisation. Lorsque vous définissez la stratégie d'autorisation modifiée, IAM compare la valeuretag
de la requête avec la valeuretag
existante et n'écrit la stratégie d'autorisation que si les valeurs correspondent.Pour modifier les rôles accordés par une stratégie d'autorisation, vous devez modifier les liaisons de rôle 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" ] }
Les espaces réservés prennent les valeurs suivantes :
ROLE_NAME
: nom du rôle que vous souhaitez attribuer. Utilisez le format suivant :roles/securesourcemanager.<var>IDENTIFIER</var>
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: identifiants des comptes principaux auxquels vous souhaitez accorder le rôle.
L'exemple suivant attribue le rôle
repoAdmin
à l'utilisateuremail1@gmail.com
, et le rôlerepoWriter
aux utilisateursemail2@gmail.com
etgroup1@gmail.com
, ainsi qu'au compte de servicemy-other-app@appspot.gserviceaccount.com
.{ "policy": { "etag": "BwUjHYKJUiQ=", "bindings": [ { "role": "roles/securesourcemanager.repoAdmin", "members": [ "user:email1@gmail.com" ] }, { "role": "roles/resourcemanager.repoWriter", "members": [ "user:email2@gmail.com", "group:group1@gmail.com", "serviceAccount:my-other-app@appspot.gserviceaccount.com" ] } ] } }
Enregistrez le fichier
/tmp/repository.json
modifié.Définissez la nouvelle règle avec la commande
setIamPolicy
:curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/REPOSITORY_PROJECT/locations/REGION/repositories/REPOSITORY_ID:setIamPolicy \ -d @/tmp/repository.json
Remplacez les éléments suivants :
REPOSITORY_PROJECT
: ID ou numéro de projet du dépôt.REGION
: région dans laquelle se trouve le dépôt. Consultez la documentation sur les emplacements pour connaître les régions Secure Source Manager disponibles.REPOSITORY_ID
: ID du dépôt.
Étapes suivantes
- En savoir plus sur le contrôle des accès avec IAM dans Secure Source Manager