Utilisation de balises pour contrôler l'accès aux ressources AWS CodeBuild - AWS CodeBuild

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.

Utilisation de balises pour contrôler l'accès aux ressources AWS CodeBuild

Les conditions figurant dans les déclarations de IAM politique font partie de la syntaxe que vous pouvez utiliser pour spécifier les autorisations relatives aux actions CodeBuild basées sur des projets. Vous pouvez créer une politique qui autorise ou refuse des actions sur des projets en fonction des balises associées à ces projets, puis appliquer ces politiques aux IAM groupes que vous configurez pour gérer les utilisateurs. Pour plus d'informations sur l'application de balises à un projet à l'aide de la console ou AWS CLI consultezCréez un projet de construction dans AWS CodeBuild. Pour plus d'informations sur l'application de balises à l'aide de CodeBuild SDK, voir CreateProject et Tags dans la CodeBuildAPIréférence. Pour plus d'informations sur l'utilisation de balises pour contrôler l'accès aux AWS ressources, consultez la section Contrôle de l'accès aux AWS ressources à l'aide de balises de ressources dans le guide de IAM l'utilisateur.

Important

Lorsque vous utilisez la fonctionnalité de capacité réservée, les données mises en cache sur les instances de flotte, y compris les fichiers source, les couches Docker et les répertoires mis en cache spécifiés dans les spécifications de construction, peuvent être accessibles aux autres projets du même compte. Cela est intentionnel et permet aux projets au sein d'un même compte de partager des instances de flotte.

Exemple 1 : Limiter les actions CodeBuild du projet en fonction des balises de ressources

L'exemple suivant refuse toutes les actions BatchGetProjects sur les projets marqués avec la clé Environment utilisant la valeur Production. L'administrateur d'un utilisateur doit associer cette IAM politique en plus de la politique d'utilisateur géré aux utilisateurs non autorisés. La clé de condition aws:ResourceTag est utilisée pour contrôler l'accès aux ressources en fonction de leurs balises.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:BatchGetProjects" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/Environment": "Production" } } } ] }
Exemple 2 : Limiter les actions CodeBuild du projet en fonction des balises de demande

La stratégie suivante refuse aux utilisateurs l'autorisation pour l'action CreateProject si la demande contient une balise avec la clé Environment et la valeur de clé Production. En outre, la stratégie empêche ces utilisateurs non autorisés de modifier des projets en utilisant la clé de condition aws:TagKeys pour ne pas autoriser UpdateProject si la requête contient une balise avec la clé Environment. Un administrateur doit associer cette IAM politique en plus de la politique des utilisateurs gérés aux utilisateurs qui ne sont pas autorisés à effectuer ces actions. La clé de aws:RequestTag condition est utilisée pour contrôler les balises qui peuvent être transmises dans une IAM demande

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:CreateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:RequestTag/Environment": "Production" } } }, { "Effect": "Deny", "Action": [ "codebuild:UpdateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["Environment"] } } } ] }
Exemple 3 : Refuser ou autoriser des actions sur des groupes de rapports en fonction des balises de ressources

Vous pouvez créer une politique qui autorise ou refuse les actions sur les CodeBuild ressources (projets et groupes de rapports) en fonction des AWS balises associées à ces ressources, puis appliquer ces politiques aux IAM groupes que vous configurez pour gérer les utilisateurs. Par exemple, vous pouvez créer une politique qui refuse toutes les CodeBuild actions sur un groupe de rapports dont la clé de AWS balise Status et la valeur clé sontSecret, puis appliquer cette politique au IAM groupe que vous avez créé pour les développeurs généraux (Developers). Vous devez ensuite vous assurer que les développeurs travaillant sur ces groupes de rapports balisés ne sont pas membres de ce groupe général Developers groupe, mais appartenez plutôt à un autre IAM groupe auquel la politique restrictive n'est pas appliquée (SecretDevelopers).

L'exemple suivant refuse toutes les CodeBuild actions sur les groupes de rapports marqués par la clé Status et la valeur clé de Secret :

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Deny", "Action" : [ "codebuild:BatchGetReportGroups," "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:ListReportGroups", "codebuild:ListReportsForReportGroup", "codebuild:UpdateReportGroup" ] "Resource" : "*", "Condition" : { "StringEquals" : "aws:ResourceTag/Status": "Secret" } } ] }
Exemple 4 : Limiter CodeBuild les actions en AWSCodeBuildDeveloperAccess fonction des balises de ressources

Vous pouvez créer des politiques qui autorisent CodeBuild des actions sur tous les groupes de rapports et projets qui ne sont pas marqués par des balises spécifiques. Par exemple, la stratégie suivante accorde l'équivalent des autorisations AWSCodeBuildDeveloperAccess pour tous les groupes de rapports, sauf ceux balisés avec les balises spécifiées :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Status": "Secret", "aws:ResourceTag/Team": "Saanvi" } } } ] }