Verwendung identitätsbasierter Richtlinien für AWS CodeBuild - 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 identitätsbasierter Richtlinien für AWS CodeBuild

Dieses Thema enthält Beispiele zu identitätsbasierten Richtlinien, die verdeutlichen, wie ein Kontoadministrator IAM-Identitäten (d. h. Benutzern, Gruppen und Rollen) Berechtigungsrichtlinien zuweisen und somit Berechtigungen zur Durchführung von Operationen für AWS CodeBuild -Ressourcen erteilen kann.

Wichtig

Wir empfehlen Ihnen, zunächst die einführenden Themen zu lesen, in denen die grundlegenden Konzepte und Optionen für die Verwaltung des Zugriffs auf Ihre Ressourcen erläutert werden. CodeBuild Weitere Informationen finden Sie unter Überblick über die Verwaltung der Zugriffsberechtigungen für Ihre Ressourcen AWS CodeBuild.

Nachfolgend sehen Sie ein Beispiel für eine Berechtigungsrichtlinie, die einem Benutzer ermöglicht, Informationen über Build-Projekte nur in der Region us-east-2 für Konto 123456789012 für alle Build-Projekte, die mit dem Namen my beginnen, abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetProjects", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

Erforderliche Berechtigungen für die Verwendung der AWS CodeBuild -Konsole

Ein Benutzer, der die AWS CodeBuild Konsole verwendet, muss über Mindestberechtigungen verfügen, die es dem Benutzer ermöglichen, andere AWS Ressourcen für das AWS Konto zu beschreiben. Sie benötigen Berechtigungen für die folgenden Services:

  • AWS CodeBuild

  • Amazon CloudWatch

  • CodeCommit (wenn Sie Ihren Quellcode in einem AWS CodeCommit Repository speichern)

  • Amazon Elastic Container Registry (Amazon ECR) (wenn Sie eine Build-Umgebung verwenden, die auf einem Docker-Image in einem Amazon ECR-Repository basiert)

    Anmerkung

    Am 26. Juli 2022 wurde die Standard-IAM-Richtlinie aktualisiert. Weitere Informationen finden Sie unter Erforderliche Berechtigungen für AWS CodeBuild die Verbindung mit Amazon Elastic Container Registry.

  • Amazon Elastic Container Service (Amazon ECS) (wenn Sie eine Build-Umgebung verwenden, die auf einem Docker-Image in einem Amazon ECR-Repository basiert)

  • AWS Identity and Access Management (IAM)

  • AWS Key Management Service (AWS KMS)

  • Amazon-Simple-Storage-Service (Amazon-S3)

Wenn Sie eine IAM-Richtlinie erstellen, die restriktiver ist als die erforderlichen Mindestberechtigungen, funktioniert die Konsole nicht wie vorgesehen.

Erforderliche Berechtigungen für AWS CodeBuild die Verbindung mit Amazon Elastic Container Registry

AWS CodeBuild Hat am 26. Juli 2022 seine Standard-IAM-Richtlinie für die Amazon ECR-Genehmigung aktualisiert. Die folgenden Berechtigungen wurden aus der Standardrichtlinie entfernt:

"ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload"

Für CodeBuild Projekte, die vor dem 26. Juli 2022 erstellt wurden, empfehlen wir Ihnen, Ihre Richtlinie mit der folgenden Amazon ECR-Richtlinie zu aktualisieren:

"Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ]

Weitere Informationen zur Aktualisierung Ihrer Richtlinie finden Sie unterHinzufügen von CodeBuild Zugriffsberechtigungen zu einer IAM-Gruppe oder einem IAM-Benutzer.

Für die AWS CodeBuild Konsole sind Berechtigungen erforderlich, um eine Verbindung zu Quellanbietern herzustellen

Die AWS CodeBuild Konsole verwendet die folgenden API-Aktionen, um eine Verbindung zu Quellanbietern (z. B. GitHub Repositorys) herzustellen.

  • codebuild:ListConnectedOAuthAccounts

  • codebuild:ListRepositories

  • codebuild:PersistOAuthToken

  • codebuild:ImportSourceCredentials

Mithilfe der Konsole können Sie Quellanbieter (wie GitHub Repositorys) Ihren Build-Projekten zuordnen. AWS CodeBuild Dazu müssen Sie zunächst die oben genannten API-Aktionen zu den IAM-Zugriffsrichtlinien hinzufügen, die dem Benutzer zugeordnet sind, den Sie für den Zugriff auf die AWS CodeBuild Konsole verwenden.

Die API-Aktionen ListConnectedOAuthAccounts, ListRepositories und PersistOAuthToken werden nicht von Ihrem Code aufgerufen. Daher sind diese API-Aktionen nicht in den AWS SDKs AWS CLI und enthalten.

AWS verwaltete (vordefinierte) Richtlinien für AWS CodeBuild

AWS adressiert viele gängige Anwendungsfälle durch die Bereitstellung eigenständiger IAM-Richtlinien, die von erstellt und verwaltet werden. AWS Diese AWS verwalteten Richtlinien gewähren die erforderlichen Berechtigungen für allgemeine Anwendungsfälle, sodass Sie nicht erst untersuchen müssen, welche Berechtigungen benötigt werden. Die verwalteten Richtlinien für gewähren CodeBuild auch Berechtigungen zur Ausführung von Vorgängen in anderen Diensten wie IAM AWS CodeCommit, Amazon EC2, Amazon ECR, Amazon SNS und Amazon CloudWatch Events, je nach den Verantwortlichkeiten der Benutzer, denen die betreffende Richtlinie erteilt wurde. Bei der AWSCodeBuildAdminAccess Richtlinie handelt es sich beispielsweise um eine Benutzerrichtlinie auf Administrationsebene, die es Benutzern mit dieser Richtlinie ermöglicht, CloudWatch Veranstaltungsregeln für Projekt-Builds und Amazon SNS SNS-Themen für Benachrichtigungen über projektbezogene Ereignisse (Themen, deren Namen mit einem Präfix versehen sindarn:aws:codebuild:) zu erstellen und zu verwalten sowie Projekte und Berichtsgruppen in zu verwalten. CodeBuild Weitere Informationen finden Sie unter AWS -verwaltete Richtlinien im IAM-Benutzerhandbuch.

Die folgenden AWS verwalteten Richtlinien, die Sie Benutzern in Ihrem Konto zuordnen können, sind spezifisch für. AWS CodeBuild

AWSCodeBuildAdminAccess

Bietet vollen Zugriff auf CodeBuild einschließlich Berechtigungen zur Verwaltung von CodeBuild Build-Projekten.

AWSCodeBuildDeveloperAccess

Bietet Zugriff auf die Verwaltung von Build-Projekten, erlaubt CodeBuild aber nicht.

AWSCodeBuildReadOnlyAccess

Bietet schreibgeschützten Zugriff auf. CodeBuild

Um auf die erstellten Build-Ausgabeartefakte zuzugreifen, müssen Sie auch die AWS verwaltete Richtlinie mit dem Namen anhängen. CodeBuild AmazonS3ReadOnlyAccess

Um CodeBuild Servicerollen zu erstellen und zu verwalten, müssen Sie auch die AWS verwaltete Richtlinie mit dem Namen anhängenIAMFullAccess.

Sie können auch Ihre eigenen benutzerdefinierten IAM-Richtlinien erstellen, um Berechtigungen für CodeBuild Aktionen und Ressourcen zu gewähren. Die benutzerdefinierten Richtlinien können Sie dann den -Benutzern oder -Gruppen zuweisen, die diese Berechtigungen benötigen.

AWSCodeBuildAdminAccess

Die AWSCodeBuildAdminAccess Richtlinie bietet vollen Zugriff auf CodeBuild Build-Projekte CodeBuild, einschließlich Berechtigungen zur Verwaltung. Wenden Sie diese Richtlinie nur auf Benutzer auf Administratorebene an, um ihnen die volle Kontrolle über CodeBuild Projekte, Berichtsgruppen und zugehörige Ressourcen in Ihrem AWS Konto zu gewähren, einschließlich der Möglichkeit, Projekte und Berichtsgruppen zu löschen.

Die Richtlinie AWSCodeBuildAdminAccess enthält die folgende Richtlinienanweisung:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSServicesAccess", "Action": [ "codebuild:*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:ListRepositories", "cloudwatch:GetMetricStatistics", "ec2:DescribeVpcs", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ecr:DescribeRepositories", "ecr:ListImages", "elasticfilesystem:DescribeFileSystems", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CWLDeleteLogGroupAccess", "Action": [ "logs:DeleteLogGroup" ], "Effect": "Allow", "Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/*:log-stream:*" }, { "Sid": "SSMParameterWriteAccess", "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Sid": "SSMStartSessionAccess", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "arn:aws:ecs:*:*:task/*/*" }, { "Sid": "CodeStarConnectionsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:UpdateConnectionInstallation", "codestar-connections:TagResource", "codestar-connections:UntagResource", "codestar-connections:ListConnections", "codestar-connections:ListInstallationTargets", "codestar-connections:ListTagsForResource", "codestar-connections:GetConnection", "codestar-connections:GetIndividualAccessToken", "codestar-connections:GetInstallationUrl", "codestar-connections:PassConnection", "codestar-connections:StartOAuthHandshake", "codestar-connections:UseConnection" ], "Resource": [ "arn:aws:codestar-connections:*:*:connection/*", "arn:aws:codeconnections:*:*:connection/*" ] }, { "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" } ] }

AWSCodeBuildDeveloperAccess

Die AWSCodeBuildDeveloperAccess Richtlinie ermöglicht den Zugriff auf alle Funktionen von Ressourcen im Zusammenhang mit Projekt CodeBuild - und Berichtsgruppen. Diese Richtlinie erlaubt es Benutzern nicht, CodeBuild Projekte oder Berichtsgruppen oder verwandte Ressourcen in anderen AWS Diensten, wie z. B. CloudWatch Ereignisse, zu löschen. Wir empfehlen, dass diese Richtlinie auf die meisten Benutzer anzuwenden.

Die Richtlinie AWSCodeBuildDeveloperAccess enthält die folgende Richtlinienanweisung:

{ "Statement": [ { "Sid": "AWSServicesAccess", "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "codebuild:RetryBuild", "codebuild:RetryBuildBatch", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:DescribeCodeCoverages", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "SSMParameterWriteAccess", "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Sid": "SSMStartSessionAccess", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "arn:aws:ecs:*:*:task/*/*" }, { "Sid": "CodeStarConnectionsUserAccess", "Effect": "Allow", "Action": [ "codestar-connections:ListConnections", "codestar-connections:GetConnection" ], "Resource": [ "arn:aws:codestar-connections:*:*:connection/*", "arn:aws:codeconnections:*:*:connection/*" ] }, { "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" } ], "Version": "2012-10-17" }

AWSCodeBuildReadOnlyAccess

Die AWSCodeBuildReadOnlyAccess Richtlinie gewährt nur Lesezugriff auf CodeBuild und verwandte Ressourcen in anderen AWS Diensten. Wenden Sie diese Richtlinie auf Benutzer an, die Builds anzeigen und ausführen, Projekte anzeigen und Berichtsgruppen anzeigen können, jedoch keine Änderungen für sie ausführen dürfen.

Die Richtlinie AWSCodeBuildReadOnlyAccess enthält die folgende Richtlinienanweisung:

{ "Statement": [ { "Sid": "AWSServicesAccess", "Action": [ "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:List*", "codebuild:DescribeTestCases", "codebuild:DescribeCodeCoverages", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CodeStarConnectionsUserAccess", "Effect": "Allow", "Action": [ "codestar-connections:ListConnections", "codestar-connections:GetConnection" ], "Resource": [ "arn:aws:codestar-connections:*:*:connection/*", "arn:aws:codeconnections:*:*:connection/*" ] }, { "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" } ], "Version": "2012-10-17" }

CodeBuild verwaltete Richtlinien und Benachrichtigungen

CodeBuild unterstützt Benachrichtigungen, mit denen Benutzer über wichtige Änderungen an Build-Projekten informiert werden können. Zu den verwalteten Richtlinien CodeBuild gehören auch Richtlinienerklärungen für die Benachrichtigungsfunktion. Weitere Informationen finden Sie unter Was sind Benachrichtigungen?.

Berechtigungen in Zusammenhang mit Benachrichtigungen in verwalteten Vollzugriffsrichtlinien

Die von AWSCodeBuildFullAccess verwaltete Richtlinie enthält die folgenden Anweisungen, um den vollständigen Zugriff auf Benachrichtigungen zu ermöglichen. Benutzer, für die diese verwaltete Richtlinie gilt, können auch Amazon SNS SNS-Themen für Benachrichtigungen erstellen und verwalten, Benutzer für Themen abonnieren und abbestellen, Themen auflisten, die als Ziele für Benachrichtigungsregeln ausgewählt werden sollen, und für Slack konfigurierte AWS Chatbot Clients auflisten.

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" }

Berechtigungen in Zusammenhang mit Benachrichtigungen in schreibgeschützten verwalteten Richtlinien

Die verwaltete Richtlinie AWSCodeBuildReadOnlyAccess enthält die folgenden Anweisungen, um schreibgeschützten Zugriff auf Benachrichtigungen zu ermöglichen. Benutzer mit dieser verwalteten Richtlinie können Benachrichtigungen für Ressourcen anzeigen, sie können sie jedoch nicht erstellen, verwalten oder abonnieren.

{ "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" }

Berechtigungen in Zusammenhang mit Benachrichtigungen in anderen verwalteten Richtlinien

Die verwaltete Richtlinie AWSCodeBuildDeveloperAccess enthält die folgenden Anweisungen, mit denen Sie Benutzern erlauben können, Benachrichtigungen zu erstellen, zu bearbeiten und zu abonnieren. Benutzer können Benachrichtigungsregeln nicht löschen und auch keine Tags für Ressourcen verwalten.

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" }

Weitere Informationen zu IAM und Benachrichtigungen findest du unter Identity and Access Management Benachrichtigungen. AWS CodeStar

CodeBuild Aktualisierungen der AWS verwalteten Richtlinien

Hier finden Sie Informationen zu Aktualisierungen AWS verwalteter Richtlinien, die CodeBuild seit Beginn der Nachverfolgung dieser Änderungen durch diesen Dienst vorgenommen wurden. Abonnieren Sie den RSS-Feed auf, um automatische Benachrichtigungen über Änderungen an dieser Seite zu erhaltenAWS CodeBuild Dokumenthistorie des Benutzerhandbuches .

Änderung Beschreibung Datum

AWSCodeBuildAdminAccessAWSCodeBuildDeveloperAccess, und AWSCodeBuildReadOnlyAccess — Aktualisierung vorhandener Richtlinien

CodeBuild hat diesen Richtlinien eine Ressource hinzugefügt, um das AWS CodeConnections Rebranding zu unterstützen.

Die AWSCodeBuildReadOnlyAccess Richtlinien AWSCodeBuildAdminAccessAWSCodeBuildDeveloperAccess, und wurden geändert, um eine Ressource hinzuzufügen,arn:aws:codeconnections:*:*:connection/*.

18. April 2024

AWSCodeBuildAdminAccessund AWSCodeBuildDeveloperAccess — Aktualisierung der bestehenden Richtlinien

CodeBuild diesen Richtlinien wurde eine Berechtigung hinzugefügt, um einen zusätzlichen Benachrichtigungstyp zu unterstützen, indem AWS Chatbot

Die AWSCodeBuildDeveloperAccess Richtlinien AWSCodeBuildAdminAccess und wurden geändert, um eine Berechtigung hinzuzufügen,chatbot:ListMicrosoftTeamsChannelConfigurations.

16. Mai 2023

CodeBuild hat begonnen, Änderungen zu verfolgen

CodeBuild hat begonnen, Änderungen für die AWS verwalteten Richtlinien zu verfolgen.

16. Mai 2021

Beispiele für vom Kunden verwaltete Richtlinien

In diesem Abschnitt finden Sie Beispiele für Benutzerrichtlinien, die Berechtigungen für diverse AWS CodeBuild -Aktionen erteilen. Diese Richtlinien funktionieren, wenn Sie die CodeBuild API, AWS SDKs oder verwenden. AWS CLI Bei Verwendung der Konsole müssen Sie zusätzliche konsolenspezifische Berechtigungen erteilen. Weitere Informationen finden Sie unter Erforderliche Berechtigungen für die Verwendung der AWS CodeBuild -Konsole.

Sie können die folgenden IAM-Beispielrichtlinien verwenden, um den CodeBuild Zugriff für Ihre Benutzer und Rollen einzuschränken.

Themen

Benutzern das Abrufen von Informationen über Build-Projekte ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, Informationen über Build-Projekte in der Region us-east-2 für Konto 123456789012 für alle Build-Projekte, die mit dem Namen my beginnen, abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetProjects", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

Ermöglicht es einem Benutzer, Informationen über Flotten abzurufen

Das folgende Beispiel für eine Richtlinienanweisung ermöglicht es einem Benutzer, Informationen über Flotten in der us-east-2 Region auf eigene Rechnung abzurufen: 123456789012

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetFleets", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }

Benutzern das Abrufen von Informationen über Berichtsgruppen ermöglichen

Die folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, Informationen zu Berichtsgruppen in der us-east-2-Region für das Konto 123456789012 abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReportGroups", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

Benutzern das Abrufen von Informationen über Berichte ermöglichen

Die folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, Informationen zu Berichten in der us-east-2-Region für das Konto 123456789012 abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReports", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

Benutzern das Erstellen von Build-Projekten ermöglichen

Die folgende Beispiel-Richtlinienanweisung ermöglicht es einem Benutzer, Build-Projekte mit einem beliebigen Namen zu erstellen, jedoch nur in der us-east-2 Region für das Konto 123456789012 und nur unter Verwendung der angegebenen CodeBuild Servicerolle:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/CodeBuildServiceRole" } ] }

Die folgende beispielhafte Richtlinienanweisung ermöglicht es einem Benutzer, Build-Projekte mit einem beliebigen Namen zu erstellen, jedoch nur in der us-east-2 Region für das Konto 123456789012 und nur unter Verwendung der angegebenen CodeBuild Servicerolle. Außerdem wird festgelegt, dass der Benutzer die angegebene Servicerolle nur zusammen mit AWS CodeBuild anderen AWS Diensten verwenden kann.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/CodeBuildServiceRole", "Condition": { "StringEquals": {"iam:PassedToService": "codebuild.amazonaws.com"} } } ] }}

Erlaubt einem Benutzer, eine Flotte zu erstellen

Das folgende Beispiel für eine Richtlinienerklärung ermöglicht es einem Benutzer, eine Flotte in der us-east-2 Region für ein Konto 123456789012 zu erstellen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateFleet", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }

Benutzern das Erstellen einer Berichtsgruppe ermöglichen

Die folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, eine Berichtsgruppe in der Region us-east-2 für das Konto 123456789012 zu erstellen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

Erlaubt einem Benutzer, eine Flotte zu löschen

Das folgende Beispiel für eine Richtlinienerklärung ermöglicht es einem Benutzer, eine Flotte in der us-east-2 Region für ein Konto 123456789012 zu löschen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteFleet", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }

Benutzern das Löschen einer Berichtsgruppe ermöglichen

Die folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, eine Berichtsgruppe in der us-east-2-Region für das Konto 123456789012 zu löschen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

Benutzern das Löschen eines Berichts ermöglichen

Die folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, einen Bericht in der us-east-2-Region für das Konto 123456789012 zu löschen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteReport", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

Benutzern das Löschen von Build-Projekten ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, Build-Projekte in der Region us-east-2 für Konto 123456789012 für alle Build-Projekte, die mit dem Namen my beginnen, zu löschen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

Benutzern das Abrufen einer Liste mit Build-Projektnamen ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, eine Liste mit Build-Projektnamen für dasselbe Konto abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListProjects", "Resource": "*" } ] }

Benutzern das Ändern von Informationen über Build-Projekte ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, Informationen über Build-Projekte mit einem beliebigen Namen zu ändern, aber nur in der Region us-east-2 für Konto 123456789012 und nur mit der angegebenen Servicerolle AWS CodeBuild :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/CodeBuildServiceRole" } ] }

Erlaubt einem Benutzer, eine Flotte zu ändern

Das folgende Beispiel für eine Richtlinienerklärung ermöglicht es einem Benutzer, eine Flotte in der us-east-2 Region für ein Konto 123456789012 zu ändern:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateFleet", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }

Benutzern das Ändern einer Berichtsgruppe ermöglichen

Die folgende Beispielrichtlinienanweisung ermöglicht es einem Benutzer, eine Berichtsgruppe in der us-east-2-Region für das Konto 123456789012 zu ändern:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

Benutzern das Abrufen von Informationen über Builds ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, Informationen über Builds in der Region us-east-2 für Konto 123456789012 für Build-Projekte mit den Namen my-build-project und my-other-build-project abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetBuilds", "Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/my-build-project", "arn:aws:codebuild:us-east-2:123456789012:project/my-other-build-project" ] } ] }

Benutzern das Abrufen einer Liste mit Build-IDs für ein Build-Projekt ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, eine Liste mit Build-IDs in der Region us-east-2 für Konto 123456789012 für Build-Projekte mit den Namen my-build-project und my-other-build-project abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListBuildsForProject", "Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/my-build-project", "arn:aws:codebuild:us-east-2:123456789012:project/my-other-build-project" ] } ] }

Benutzern das Abrufen einer Liste mit Build-IDs ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, eine Liste aller Build-IDs für dasselbe Konto abzurufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListBuilds", "Resource": "*" } ] }

Erlaubt einem Benutzer, eine Liste von Flotten abzurufen

Die folgende beispielhafte Richtlinienanweisung ermöglicht es einem Benutzer, eine Liste von Flotten in der us-east-2 Region für sein Konto abzurufen: 123456789012

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListFleets", "Resource": "*" } ] }

Benutzern das Abrufen einer Liste von Berichtsgruppen ermöglichen

Mit der folgenden Beispielrichtlinienanweisung kann ein Benutzer eine Liste der Berichtsgruppen in der us-east-2-Region für das Konto 123456789012 abrufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportGroups", "Resource": "*" } ] }

Benutzern das Abrufen einer Liste von Berichten ermöglichen

Mit der folgenden Beispielrichtlinienanweisung kann ein Benutzer eine Liste von Berichten in der us-east-2-Region für das Konto 123456789012 abrufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReports", "Resource": "*" } ] }

Benutzern das Abrufen einer Liste von Berichten für eine Berichtsgruppe ermöglichen

Mit der folgenden Beispielrichtlinienanweisung kann ein Benutzer eine Liste von Berichten für eine Berichtsgruppe in der us-east-2-Region für das Konto 123456789012 abrufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportsForReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

Benutzern das Abrufen einer Liste von Testfällen für einen Bericht ermöglichen

Mit der folgenden Beispielrichtlinienanweisung kann ein Benutzer eine Liste von Testfällen für einen Bericht in der us-east-2-Region für das Konto 123456789012 abrufen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DescribeTestCases", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

Benutzern das Ausführen eines Builds ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, Builds in der Region us-east-2 für Konto 123456789012 für alle Build-Projekte, die mit dem Namen my beginnen, auszuführen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:StartBuild", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

Benutzern das Stoppen von Builds ermöglichen

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, ausgeführte Builds nur in der Region us-east-2 für Konto 123456789012 für alle Build-Projekte, die mit dem Namen my beginnen, zu stoppen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:StopBuild", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

Benutzern das Löschen von Builds ermöglichen

Nachfolgend finden Sie ein Beispiel für eine Richtlinienanweisung, die einem Benutzer ermöglicht, Builds nur in der Region us-east-2 für Konto 123456789012 zu löschen, wenn der Name des Build-Projekts mit my beginnt:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchDeleteBuilds", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

Erlaubt einem Benutzer, Informationen über Docker-Images abzurufen, die verwaltet werden von CodeBuild

Die folgende Beispiel-Richtlinienanweisung ermöglicht es einem Benutzer, Informationen über alle Docker-Images abzurufen, die von verwaltet werden: CodeBuild

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListCuratedEnvironmentImages", "Resource": "*" } ] }

Erlaubt einem Benutzer, eine Berechtigungsrichtlinie für eine Flottenservice-Rolle hinzuzufügen

Das folgende Beispiel für eine Ressourcenrichtlinienanweisung ermöglicht es einem Benutzer, eine Berechtigungsrichtlinie für eine Flottenservice-Rolle hinzuzufügen:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildFleetVpcCreateNI", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:region:account-id:subnet/subnet-id-1", "arn:aws:ec2:region:account-id:security-group/security-group-id-1", "arn:aws:ec2:region:account-id:network-interface/*" ] }, { "Sid": "CodeBuildFleetVpcPermission", "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Sid": "CodeBuildFleetVpcNIPermission", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:Subnet": [ "arn:aws:ec2:region:account-id:subnet/subnet-id-1" ] } } } ] }

Das folgende Beispiel für eine Vertrauensrichtlinien-Erklärung ermöglicht es einem Benutzer, eine Berechtigungsrichtlinie für eine Flottenservice-Rolle hinzuzufügen:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildFleetVPCTrustPolicy", "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }

Erlauben Sie den CodeBuild Zugriff auf AWS Dienste, die zum Erstellen einer VPC-Netzwerkschnittstelle erforderlich sind

Die folgende Beispiel-Richtlinienanweisung erteilt die AWS CodeBuild Erlaubnis, eine Netzwerkschnittstelle in einer VPC mit zwei Subnetzen zu erstellen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:AuthorizedService": "codebuild.amazonaws.com" }, "ArnEquals": { "ec2:Subnet": [ "arn:aws:ec2:region:account-id:subnet/subnet-id-1", "arn:aws:ec2:region:account-id:subnet/subnet-id-2" ] } } } ] }

Verwenden Sie eine Deny-Anweisung, um zu verhindern, dass die Verbindung zu den Quellanbietern AWS CodeBuild getrennt wird

Nachfolgend sehen Sie ein Beispiel für eine Richtlinienanweisung, die eine Deny-Anweisung verwendet, um die Trennung zwischen AWS CodeBuild und Quellanbietern zu verhindern. In der Anweisung wird codebuild:DeleteOAuthToken, die Umkehrung von codebuild:PersistOAuthToken und codebuild:ImportSourceCredentials, verwendet, um eine Verbindung zu Quellanbietern herzustellen. Weitere Informationen finden Sie unter Für die AWS CodeBuild Konsole sind Berechtigungen erforderlich, um eine Verbindung zu Quellanbietern herzustellen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "codebuild:DeleteOAuthToken", "Resource": "*" } ] }