View a markdown version of this page

Verwendung von Tags zur Steuerung des Zugriffs auf AWS CodeBuild Ressourcen - AWS CodeBuild

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung von Tags zur Steuerung des Zugriffs auf AWS CodeBuild Ressourcen

Bedingungen in IAM-Richtlinienanweisungen sind Teil der Syntax, mit der Sie Berechtigungen für CodeBuild projektbasierte Aktionen angeben können. Sie können eine Richtlinie erstellen, die Aktionen für Projekte auf der Grundlage der mit diesen Projekten verknüpften Tags zulässt oder ablehnt, und diese Richtlinien dann auf die IAM-Gruppen anwenden, die Sie für die Benutzerverwaltung konfigurieren. Informationen zum Anwenden von Tags auf ein Projekt mithilfe der Konsole oder finden Sie AWS CLI unter. Erstellen Sie ein Build-Projekt in AWS CodeBuild Informationen zum Anwenden von Tags mithilfe des CodeBuild SDK finden Sie unter CreateProject und Tags in der CodeBuild API-Referenz. Informationen zur Verwendung von Tags zur Steuerung des Zugriffs auf AWS Ressourcen finden Sie unter Steuern des Zugriffs auf AWS Ressourcen mithilfe von Ressourcen-Tags im IAM-Benutzerhandbuch.

Wichtig

Wenn Sie die Funktion für reservierte Kapazität verwenden, können andere Projekte innerhalb desselben Kontos auf Daten, die auf Flotteninstanzen zwischengespeichert sind, einschließlich Quelldateien, Docker-Ebenen und zwischengespeicherten Verzeichnissen, die in der Buildspec angegeben sind, zugreifen. Dies ist beabsichtigt und ermöglicht es Projekten innerhalb desselben Kontos, Flotteninstanzen gemeinsam zu nutzen.

Beispiel Beispiel 1: Beschränken Sie CodeBuild Projektaktionen auf der Grundlage von Ressourcen-Tags

Im folgenden Beispiel werden alle Production-Aktionen für Projekte verweigert, die mit dem Schlüssel BatchGetProjects mit dem Schlüsselwert Environment gekennzeichnet sind. Der Administrator eines Benutzers muss diese IAM-Richtlinie zusätzlich zur Richtlinie für verwaltete Benutzer an nicht autorisierte Benutzer anhängen. Der Bedingungsschlüssel aws:ResourceTag wird verwendet, um den Zugriff auf Ressourcen basierend auf ihren Tags zu steuern.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:BatchGetProjects" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/Environment": "Production" } } } ] }
Beispiel Beispiel 2: Beschränken Sie CodeBuild Projektaktionen auf der Grundlage von Anforderungs-Tags

Die folgende Richtlinie verweigert Benutzern die Berechtigung für die Aktion CreateProject, wenn die Anforderung ein Tag mit dem Schlüssel Environment und dem Schlüsselwert Production enthält. Darüber hinaus hindert die Richtlinie diese nicht autorisierten Benutzer daran, Projekte zu ändern, indem sie den Bedingungsschlüssel aws:TagKeys verwenden, um UpdateProject nicht zuzulassen, wenn die Anforderung ein Tag mit dem Schlüssel Environment enthält. Ein Administrator muss diese IAM-Richtlinie zusätzlich zur Richtlinie für verwaltete Benutzer an Benutzer anhängen, die nicht berechtigt sind, diese Aktionen auszuführen. Der aws:RequestTag Bedingungsschlüssel wird verwendet, um zu steuern, welche Tags in einer IAM-Anfrage übergeben werden können

JSON
{ "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"] } } } ] }
Beispiel Beispiel 3: Ablehnen oder Zulassen von Aktionen für Berichtsgruppen basierend auf Ressourcen-Tags

Sie können eine Richtlinie erstellen, die Aktionen für CodeBuild Ressourcen (Projekte und Berichtsgruppen) auf der Grundlage der mit diesen Ressourcen verknüpften AWS Tags zulässt oder ablehnt, und diese Richtlinien dann auf die IAM-Gruppen anwenden, die Sie für die Benutzerverwaltung konfigurieren. Sie können beispielsweise eine Richtlinie erstellen, die alle CodeBuild Aktionen für jede Berichtsgruppe mit dem AWS Tag-Schlüssel Status und dem Schlüsselwert von verweigertSecret, und diese Richtlinie dann auf die IAM-Gruppe anwenden, die Sie für allgemeine Entwickler erstellt haben (). Developers Anschließend müssen Sie sicherstellen, dass die Entwickler, die an diesen markierten Berichtsgruppen arbeiten, nicht Mitglieder dieser allgemeinen Developers Gruppe sind, sondern einer anderen IAM-Gruppe angehören, auf die die restriktive Richtlinie nicht angewendet wird (). SecretDevelopers

Im folgenden Beispiel werden alle CodeBuild Aktionen für Berichtsgruppen abgelehnt, die mit dem Schlüssel Status und dem Schlüsselwert von gekennzeichnet sind: Secret

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:BatchGetReportGroups", "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:ListReportGroups", "codebuild:ListReportsForReportGroup", "codebuild:UpdateReportGroup" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestedRegion": "us-east-1" } } } ] }
Beispiel Beispiel 4: Beschränken Sie CodeBuild Aktionen auf Aktionen, die auf Ressourcen-Tags AWSCodeBuildDeveloperAccess basieren

Sie können Richtlinien erstellen, die CodeBuild Aktionen für alle Berichtsgruppen und Projekte zulassen, die nicht mit bestimmten Stichwörtern gekennzeichnet sind. Die folgende Richtlinie lässt z. B. das Äquivalent von AWSCodeBuildDeveloperAccess-Berechtigungen für alle Berichtsgruppen und Projekte zu. Ausgenommen sind jedoch Berichtsgruppen und Projekte, die mit den angegebenen Tags markiert sind:

JSON
{ "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" } } } ] }