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.
Bedingungen in IAM Richtlinienerklärungen 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 verweigert, und diese Richtlinien dann auf die IAM Gruppen anwenden, die Sie für die Verwaltung von Benutzern konfigurieren. Informationen zum Anwenden von Tags auf ein Projekt mithilfe der Konsole oder finden Sie AWS CLI unterErstellen Sie ein Build-Projekt in AWS CodeBuild. Informationen zum Anwenden CodeBuild SDK von Tags mithilfe von finden Sie unter CreateProject und Tags in der CodeBuildAPIReferenz. Informationen zur Verwendung von Tags zur Steuerung des Zugriffs auf AWS Ressourcen finden Sie im IAMBenutzerhandbuch unter Steuern des Zugriffs auf AWS Ressourcen mithilfe von Ressourcen-Tags.
Wichtig
Wenn Sie die Funktion für reservierte Kapazität verwenden, können andere Projekte innerhalb desselben Kontos auf Daten zugreifen, die auf Flotteninstanzen zwischengespeichert sind, einschließlich Quelldateien, Docker-Layern und zwischengespeicherten Verzeichnissen, die in der Buildspec angegeben sind. Dies ist beabsichtigt und ermöglicht es Projekten innerhalb desselben Kontos, Flotteninstanzen gemeinsam zu nutzen.
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 Richtlinie zusätzlich zu der IAM Richtlinie für verwaltete Benutzer für nicht autorisierte Benutzer einrichten. Der Bedingungsschlüssel aws:ResourceTag
wird verwendet, um den Zugriff auf Ressourcen basierend auf ihren Tags zu steuern.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"codebuild:BatchGetProjects"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringEquals": {
"aws:ResourceTag/Environment": "Production"
}
}
}
]
}
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 zu der Richtlinie für verwaltete Benutzer hinzufügen, 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
{
"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 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 verweigert, und diese Richtlinien dann auf die IAM Gruppen anwenden, die Sie für die Verwaltung von Benutzern konfigurieren. Sie können beispielsweise eine Richtlinie erstellen, die alle CodeBuild Aktionen für eine Berichtsgruppe mit AWS dem Tagschlü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
). Sie müssen dann sicherstellen, dass die Entwickler, die an diesen markierten Berichtsgruppen arbeiten, nicht Mitglieder dieser Gruppe sind Developers
Gruppe, gehören aber stattdessen zu einer anderen IAM Gruppe, auf die die restriktive Richtlinie nicht angewendet wurde (SecretDevelopers
).
Im folgenden Beispiel werden alle CodeBuild Aktionen für Berichtsgruppen verweigert, die mit dem Schlüssel Status
und dem Schlüsselwert gekennzeichnet sind: 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
"
}
}
]
}
Beispiel 4: Beschränken Sie CodeBuild Aktionen auf die AWSCodeBuildDeveloperAccess Grundlage von Ressourcen-Tags
Sie können Richtlinien erstellen, die CodeBuild Aktionen für alle Berichtsgruppen und Projekte zulassen, die nicht mit bestimmten Tags 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:
{
"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
"
}
}
}
]
}