Comment AWS CodePipeline fonctionne avec IAM - AWS CodePipeline

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comment AWS CodePipeline fonctionne avec IAM

Avant d'utiliser IAM pour gérer l'accès à CodePipeline, vous devez connaître les fonctionnalités IAM disponibles. CodePipeline Pour obtenir une vue d'ensemble de la manière dont IAM fonctionne CodePipeline et Services AWS des autres fonctionnalités, consultez Services AWS la section relative à l'utilisation d'IAM dans le Guide de l'utilisateur d'IAM.

CodePipelinePolitiques basées sur l'identité

Avec les politiques IAM basées sur l’identité, vous pouvez spécifier des actions et ressources autorisées ou refusées, ainsi que les conditions dans lesquelles les actions sont autorisées ou refusées. CodePipeline prend en charge des actions, des ressources et des clés de condition spécifiques. Pour en savoir plus sur tous les éléments que vous utilisez dans une politique JSON, consultez Références des éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.

Actions

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel principal peut effectuer des actions sur quelles ressources et dans quelles conditions.

L’élément Action d’une politique JSON décrit les actions que vous pouvez utiliser pour autoriser ou refuser l’accès à une politique. Les actions de stratégie portent généralement le même nom que l'opération AWS d'API associée. Il existe quelques exceptions, telles que les actions avec autorisations uniquement qui n’ont pas d’opération API correspondante. Certaines opérations nécessitent également plusieurs actions dans une politique. Ces actions supplémentaires sont nommées actions dépendantes.

Intégration d’actions dans une stratégie afin d’accorder l’autorisation d’exécuter les opérations associées.

Les actions de politique en CodePipeline cours utilisent le préfixe suivant avant l'action :codepipeline:.

Par exemple, pour accorder à quelqu'un l'autorisation d'afficher les pipelines existants dans le compte, vous incluez l'action codepipeline:GetPipeline dans sa stratégie. Les déclarations de politique doivent inclure un NotAction élément Action ou. CodePipeline définit son propre ensemble d'actions décrivant les tâches que vous pouvez effectuer avec ce service.

Pour spécifier plusieurs actions dans une seule déclaration, séparez-les par des virgules comme suit :

"Action": [ "codepipeline:action1", "codepipeline:action2"

Vous pouvez aussi spécifier plusieurs actions à l’aide de caractères génériques (*). Par exemple, pour spécifier toutes les actions qui commencent par le mot Get, incluez l’action suivante :

"Action": "codepipeline:Get*"

Pour obtenir la liste des CodePipeline actions, reportez-vous à la section Actions définies par AWS CodePipeline dans le guide de l'utilisateur IAM.

Ressources

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel principal peut effectuer des actions sur quelles ressources et dans quelles conditions.

L’élément de politique JSON Resource indique le ou les objets auxquels l’action s’applique. Les instructions doivent inclure un élément Resource ou NotResource. Il est recommandé de définir une ressource à l’aide de son Amazon Resource Name (ARN). Vous pouvez le faire pour des actions qui prennent en charge un type de ressource spécifique, connu sous la dénomination autorisations de niveau ressource.

Pour les actions qui ne sont pas compatibles avec les autorisations de niveau ressource, telles que les opérations de liste, utilisez un caractère générique (*) afin d’indiquer que l’instruction s’applique à toutes les ressources.

"Resource": "*"

CodePipeline ressources et opérations

Dans CodePipeline, la ressource principale est un pipeline. Dans une politique, vous utilisez un Amazon Resource Name (ARN) pour identifier la ressource à laquelle la politique s'applique. CodePipeline prend en charge d'autres ressources qui peuvent être utilisées avec la ressource principale, telles que les étapes, les actions et les actions personnalisées. Celles-ci sont appelées sous-ressources. Des noms Amazon Resource Name (ARN) sont associés à ces ressources et sous-ressources. Pour plus d'informations sur les ARN, consultez Amazon Resource Names (ARN) et les Service AWS espaces de noms dans le. Référence générale d'Amazon Web Services Pour obtenir l'ARN du pipeline associé à votre pipeline, vous pouvez le trouver sous Paramètres de la console. Pour plus d’informations, consultez Afficher l'ARN du pipeline et l'ARN du rôle de service (console).

Type de ressource Format ARN

Pipeline

arn:aws:codepipeline : région : compte : nom du pipeline

Étape

arn:aws:codepipeline : région : compte : nom-de-pipeline/nom-étape

Action

arn:aws:codepipeline : région : compte : nom du pipeline, nom de l'étape, nom de l'action

Action personnalisée arn:aws:codepipeline : region : account:actiontype : propriétaire/catégorie/fournisseur/version

Toutes les CodePipeline ressources

arn:aws:codepipeline : *

Toutes les CodePipeline ressources détenues par le compte spécifié dans la région spécifiée

arn:aws:codepipeline : région : compte : *

Note

La plupart des services AWS traitent deux points (:)) ou une barre oblique (/) comme le même caractère dans les ARN. Cependant, CodePipeline utilise une correspondance exacte dans les modèles d'événements et les règles. Veillez à utiliser les caractères ARN corrects lors de la création de modèles d'événements afin qu'ils correspondent à la syntaxe ARN dans le pipeline que vous souhaitez faire correspondre.

Dans CodePipeline, certains appels d'API prennent en charge les autorisations au niveau des ressources. Les autorisations au niveau des ressources indiquent si un appel d'API peut spécifier une ressource ARN, ou s'il peut uniquement spécifier toutes les ressources à l'aide du caractère générique. Consultez CodePipeline référence aux autorisations pour une description détaillée des autorisations au niveau des ressources et une liste des appels d' CodePipeline API qui prennent en charge les autorisations au niveau des ressources.

Par exemple, vous pouvez indiquer un pipeline spécifique (myPipeline) dans votre déclaration à l'aide de son ARN comme suit :

"Resource": "arn:aws:codepipeline:us-east-2:111222333444:myPipeline"

Vous pouvez aussi spécifier tous les pipelines qui appartiennent à un compte spécifique à l'aide du caractère générique (*) comme suit :

"Resource": "arn:aws:codepipeline:us-east-2:111222333444:*"

Pour spécifier toutes les ressources, ou si une action d'API spécifique ne prend pas en charge les ARN, utilisez le caractère générique (*) dans l'élément Resource, comme suit :

"Resource": "*"
Note

Lorsque vous créez des politiques IAM, suivez les conseils de sécurité standard qui consistent à accorder le moindre privilège, c'est-à-dire à n'accorder que les autorisations nécessaires à l'exécution d'une tâche. Si un appel d'API prend en charge les ARN, il prend en charge les autorisations au niveau des ressources et vous n'avez pas besoin d'utiliser le caractère générique (*).

Certains appels CodePipeline d'API acceptent plusieurs ressources (par exemple,GetPipeline). Pour spécifier plusieurs ressources dans une seule déclaration, séparez leurs ARN par des virgules comme suit :

"Resource": ["arn1", "arn2"]

CodePipeline fournit un ensemble d'opérations permettant de travailler avec les CodePipeline ressources. Pour obtenir la liste des opérations disponibles, consultez CodePipeline référence aux autorisations.

Clés de condition

Les administrateurs peuvent utiliser les politiques AWS JSON pour spécifier qui a accès à quoi. C’est-à-dire, quel principal peut effectuer des actions sur quelles ressources et dans quelles conditions.

L’élément Condition (ou le bloc Condition) vous permet de spécifier des conditions lorsqu’une instruction est appliquée. L’élément Condition est facultatif. Vous pouvez créer des expressions conditionnelles qui utilisent des opérateurs de condition, tels que les signes égal ou inférieur à, pour faire correspondre la condition de la politique aux valeurs de la demande.

Si vous spécifiez plusieurs éléments Condition dans une instruction, ou plusieurs clés dans un seul élément Condition, AWS les évalue à l’aide d’une opération AND logique. Si vous spécifiez plusieurs valeurs pour une seule clé de condition, AWS évalue la condition à l'aide d'une OR opération logique. Toutes les conditions doivent être remplies avant que les autorisations associées à l’instruction ne soient accordées.

Vous pouvez aussi utiliser des variables d’espace réservé quand vous spécifiez des conditions. Par exemple, vous pouvez accorder à un utilisateur IAM l’autorisation d’accéder à une ressource uniquement si elle est balisée avec son nom d’utilisateur IAM. Pour plus d’informations, consultez Éléments d’une politique IAM : variables et identifications dans le Guide de l’utilisateur IAM.

AWS prend en charge les clés de condition globales et les clés de condition spécifiques au service. Pour voir toutes les clés de condition AWS globales, voir les clés de contexte de condition AWS globales dans le guide de l'utilisateur IAM.

CodePipeline définit son propre ensemble de clés de condition et prend également en charge l'utilisation de certaines clés de condition globales. Pour voir toutes les clés de condition AWS globales, consultez la section Clés contextuelles de condition AWS globale dans le guide de l'utilisateur IAM.

Toutes les actions Amazon EC2 prennent en charge les clés de condition aws:RequestedRegion et ec2:Region. Pour de plus amples informations, veuillez consulter Exemple : Restriction de l'accès à une région spécifique.

Pour consulter la liste des clés de CodePipeline condition, reportez-vous à la section Clés de AWS CodePipeline condition du guide de l'utilisateur IAM. Pour savoir avec quelles actions et ressources vous pouvez utiliser une clé de condition, voir Actions définies par AWS CodePipeline.

Exemples

Pour consulter des exemples de politiques CodePipeline basées sur l'identité, consultez. Exemples de politiques basées sur l’identité AWS CodePipeline

CodePipeline politiques basées sur les ressources

CodePipeline ne prend pas en charge les politiques basées sur les ressources. Cependant, un exemple de politique basée sur les ressources pour le service S3 associé CodePipeline est fourni.

Exemples

Pour consulter des exemples de politiques CodePipeline basées sur les ressources, voir Exemples de stratégies basées sur les ressources AWS CodePipeline

Autorisation basée sur les balises CodePipeline

Vous pouvez associer des balises aux CodePipeline ressources ou transmettre des balises dans une demande à CodePipeline. Pour contrôler l’accès basé sur des étiquettes, vous devez fournir les informations d’étiquette dans l’élément de condition d’une politique utilisant les clés de condition codepipeline:ResourceTag/key-name, aws:RequestTag/key-name ou aws:TagKeys. Pour plus d'informations sur le balisage CodePipeline des ressources, consultezBalisage des ressources.

Pour visualiser un exemple de politique basée sur l'identité permettant de limiter l'accès à une ressource en fonction des balises de cette ressource, consultez Utilisation de balises pour contrôler l'accès aux CodePipeline ressources.

CodePipeline Rôles IAM

Un rôle IAM est une entité de votre AWS compte dotée d'autorisations spécifiques.

Utilisation d'informations d'identification temporaires avec CodePipeline

Vous pouvez utiliser des informations d’identification temporaires pour vous connecter à l’aide de la fédération, endosser un rôle IAM ou encore pour endosser un rôle intercompte. Vous obtenez des informations d'identification de sécurité temporaires en appelant des opérations d' AWS STS API telles que AssumeRoleou GetFederationToken.

CodePipeline prend en charge l'utilisation d'informations d'identification temporaires.

Fonctions du service

CodePipeline permet à un service d'assumer un rôle de service en votre nom. Ce rôle autorise le service à accéder à des ressources d’autres services pour effectuer une action en votre nom. Les rôles de service s’affichent dans votre compte IAM et sont la propriété du compte. Cela signifie qu’un administrateur IAM peut modifier les autorisations associées à ce rôle. Toutefois, une telle action peut perturber le bon fonctionnement du service.

CodePipeline prend en charge les rôles de service.