Beispiele für vom Kunden verwaltete Richtlinien - AWS CodeCommit

AWS CodeCommit ist für Neukunden nicht mehr verfügbar. Bestandskunden von AWS CodeCommit können den Service weiterhin wie gewohnt nutzen. Erfahren Sie mehr“

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.

Beispiele für vom Kunden verwaltete Richtlinien

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

Beispiele für vom Kunden verwaltete Identitätsrichtlinien

Das folgende Beispiel für IAM-Richtlinien gewährt Berechtigungen für verschiedene CodeCommit Aktionen. Verwenden Sie sie, um den CodeCommit Zugriff für Ihre IAM-Benutzer und -Rollen einzuschränken. Diese Richtlinien steuern die Fähigkeit, Aktionen mit der CodeCommit Konsole, der API oder dem AWS CLI auszuführen. AWS SDKs

Anmerkung

Alle Beispiele verwenden die Region USA West (Oregon) (us-west-2) und enthalten ein fiktives Konto. IDs

Beispiele

Beispiel 1: Erlauben Sie einem Benutzer, Operationen CodeCommit in einem einzigen AWS-Region

Die folgende Berechtigungsrichtlinie verwendet ein Platzhalterzeichen ("codecommit:*"), damit Benutzer alle CodeCommit Aktionen in der Region us-east-2 und nicht von anderen aus ausführen können. AWS-Regionen

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codecommit:*", "Resource": "arn:aws:codecommit:us-east-2:111111111111:*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-east-2" } } }, { "Effect": "Allow", "Action": "codecommit:ListRepositories", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-east-2" } } } ] }

Beispiel 2: Erlaube einem Benutzer, Git für ein einzelnes Repository zu verwenden

CodeCommitIn gelten die GitPull IAM-Richtlinienberechtigungen für jeden Git-Client-Befehl CodeCommit, von dem Daten abgerufen werden git fetchgit clone, einschließlich, usw. In ähnlicher Weise gelten die GitPush IAM-Richtlinienberechtigungen für jeden Git-Client-Befehl, an den Daten gesendet CodeCommit werden. Wenn die GitPush IAM-Richtlinienberechtigung beispielsweise auf gesetzt istAllow, kann ein Benutzer das Löschen eines Branches mithilfe des Git-Protokolls vorantreiben. Dieser Push wird nicht von den Berechtigungen beeinflusst, die für diesen IAM-Benutzer auf den DeleteBranch Vorgang angewendet wurden. Die DeleteBranch Berechtigung gilt für Aktionen, die mit der Konsole, der AWS CLI SDKs, der und der API ausgeführt werden, nicht jedoch mit dem Git-Protokoll.

Das folgende Beispiel ermöglicht es dem angegebenen Benutzer, Daten aus dem angegebenen CodeCommit Repository abzurufen und dorthin zu pushenMyDemoRepo:

JSON
{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource" : "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo" } ] }

Beispiel 3: Erlaubt einem Benutzer, der von einem bestimmten IP-Adressbereich aus eine Verbindung herstellt, Zugriff auf ein Repository

Sie können eine Richtlinie erstellen, die es Benutzern nur dann erlaubt, sich mit einem CodeCommit-Repository zu verbinden, wenn ihre IP-Adresse innerhalb eines bestimmten IP-Adressbereichs liegt. Dazu gibt es zwei gleichwertige Ansätze. Sie können eine Deny Richtlinie erstellen, die CodeCommit Operationen verbietet, wenn sich die IP-Adresse des Benutzers nicht in einem bestimmten Block befindet, oder Sie können eine Allow Richtlinie erstellen, die CodeCommit Operationen zulässt, wenn sich die IP-Adresse des Benutzers innerhalb eines bestimmten Blocks befindet.

Sie können eine Deny-Richtlinie erstellen, die den Zugriff für alle Benutzer verweigert, die sich nicht aus einem bestimmten IP-Adressbereich stammen. Beispielsweise können Sie die verwaltete Richtlinie AWSCodeCommitPowerUser und eine vom Kunden verwaltete Richtlinie allen Benutzern anfügen, die Zugriff auf Ihr Repository benötigen. Die folgende Beispielrichtlinie verweigert Benutzern, deren IP-Adressen nicht innerhalb des angegebenen IP-Adressblocks 203.0.113.0/16 liegen, alle CodeCommit Berechtigungen:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codecommit:*" ], "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "203.0.113.0/16" ] } } } ] }

Mit der folgenden Beispielrichtlinie kann der angegebene Benutzer nur dann auf ein CodeCommit Repository zugreifen, das MyDemoRepo mit den entsprechenden Berechtigungen der AWSCode CommitPowerUser verwalteten Richtlinie benannt ist, wenn sich seine IP-Adresse innerhalb des angegebenen Adressblocks 203.0.113.0/16 befindet:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:BatchGetRepositories", "codecommit:CreateBranch", "codecommit:CreateRepository", "codecommit:Get*", "codecommit:GitPull", "codecommit:GitPush", "codecommit:List*", "codecommit:Put*", "codecommit:Post*", "codecommit:Merge*", "codecommit:TagResource", "codecommit:Test*", "codecommit:UntagResource", "codecommit:Update*" ], "Resource": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "Condition": { "IpAddress": { "aws:SourceIp": [ "203.0.113.0/16" ] } } } ] }

Beispiel 4: Aktionen für Branches verweigern oder zulassen

Sie können eine Richtlinie erstellen, die Benutzern die Berechtigungen für Aktionen verweigert, die Sie für eine oder mehrere Verzweigungen angeben. Alternativ können Sie eine Richtlinie erstellen, die Aktionen für eine oder mehrere Verzweigungen erlaubt, die sie sonst nicht in anderen Verzweigungen eines Repositories haben. Sie können diese Richtlinien mit den entsprechenden verwalteten (vordefinierten) Richtlinien verwenden. Weitere Informationen finden Sie unter Beschränken Sie die Anzahl von Pushs und Merges auf Branches in AWS CodeCommit.

Sie können beispielsweise eine Deny Richtlinie erstellen, die Benutzern die Möglichkeit verweigert, in einem Repository mit dem Namen main Änderungen an einem Branch mit dem Namen main vorzunehmen, einschließlich des Löschens dieses Branches. MyDemoRepo Sie können diese Richtlinien mit der verwalteten Richtlinie AWSCodeCommitPowerUser verwenden. Benutzer, auf die diese beiden Richtlinien angewendet wurden, könnten Branches erstellen und löschen, Pull Requests erstellen und alle anderen Aktionen ausführen, sofern dies von erlaubt ist. Sie wären jedoch nicht in der Lage AWSCodeCommitPowerUser, Änderungen an den Branch mit dem Namen main zu pushen, eine Datei im Main Branch in der CodeCommit Konsole hinzuzufügen oder zu bearbeiten oder Branches oder eine Pull-Anfrage mit dem Main Branch zusammenzuführen. Da Deny auf GitPush angewendet wird,, müssen Sie eine Null-Anweisung in die Richtlinie aufnehmen, um die Analyse anfänglicher GitPush-Aufrufe auf Gültigkeit zu gestatten, wenn Benutzer Sendeoperationen von ihren lokalen Repositories aus ausführen.

Tipp

Wenn Sie eine Richtlinie erstellen möchten, die für alle Branches mit dem Namen main in allen Repositorys in Ihrem Amazon Web Services Services-Konto giltResource, geben Sie statt eines Repository-ARN ein Sternchen (*) an.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codecommit:GitPush", "codecommit:DeleteBranch", "codecommit:PutFile", "codecommit:Merge*" ], "Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo", "Condition": { "StringEqualsIfExists": { "codecommit:References": [ "refs/heads/main" ] }, "Null": { "codecommit:References": "false" } } } ] }

Die folgende Beispielrichtlinie ermöglicht es einem Benutzer, Änderungen an einem Branch namens main in allen Repositorys eines Amazon Web Services Services-Kontos vorzunehmen. Sie erlaubt keine Änderungen an anderen Zweigen. Sie können diese Richtlinie zusammen mit der AWSCode CommitReadOnly verwalteten Richtlinie verwenden, um automatisierte Pushs an das Repository im Hauptzweig zu ermöglichen. Der Effekt ist Allow, deshalb würde diese Beispielrichtlinie nicht mit verwalteten Richtlinien funktionieren, wie z. B. AWSCodeCommitPowerUser.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:GitPush", "codecommit:Merge*" ], "Resource": "*", "Condition": { "StringEqualsIfExists": { "codecommit:References": [ "refs/heads/main" ] } } } ] }

Beispiel 5: Aktionen für Repositorys mit Tags verweigern oder zulassen

Sie können eine Richtlinie erstellen, die Aktionen für Repositorys auf der Grundlage der mit diesen Repositorys verknüpften AWS Tags erlaubt oder verweigert, und diese Richtlinien dann auf die IAM-Gruppen anwenden, die Sie für die Verwaltung von IAM-Benutzern konfigurieren. Sie können beispielsweise eine Richtlinie erstellen, die alle CodeCommit Aktionen in beliebigen Repositorys mit dem AWS Tag-Schlüssel Status und dem Schlüsselwert Secret verweigert, 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 Repositorys arbeiten, nicht Mitglieder dieser allgemeinen Developers Gruppe sind, sondern einer anderen IAM-Gruppe angehören, auf die die restriktive Richtlinie nicht angewendet wurde (). SecretDevelopers

Im folgenden Beispiel werden alle CodeCommit Aktionen für Repositorys verweigert, die mit dem Schlüssel Status und dem Schlüsselwert Secret gekennzeichnet sind:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codecommit:Associate*", "codecommit:Batch*", "codecommit:CancelUploadArchive", "codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreatePullRequest*", "codecommit:CreateRepository", "codecommit:CreateUnreferencedMergeCommit", "codecommit:DeleteBranch", "codecommit:DeleteCommentContent", "codecommit:DeleteFile", "codecommit:DeletePullRequest*", "codecommit:DeleteRepository", "codecommit:Describe*", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:EvaluatePullRequestApprovalRules", "codecommit:GetBlob", "codecommit:GetBranch", "codecommit:GetComment*", "codecommit:GetCommit", "codecommit:GetDifferences*", "codecommit:GetFile", "codecommit:GetFolder", "codecommit:GetMerge*", "codecommit:GetObjectIdentifier", "codecommit:GetPullRequest*", "codecommit:GetReferences", "codecommit:GetRepository*", "codecommit:GetTree", "codecommit:GetUploadArchiveStatus", "codecommit:Git*", "codecommit:ListAssociatedApprovalRuleTemplatesForRepository", "codecommit:ListBranches", "codecommit:ListPullRequests", "codecommit:ListTagsForResource", "codecommit:Merge*", "codecommit:OverridePullRequestApprovalRules", "codecommit:Post*", "codecommit:Put*", "codecommit:TagResource", "codecommit:TestRepositoryTriggers", "codecommit:UntagResource", "codecommit:UpdateComment", "codecommit:UpdateDefaultBranch", "codecommit:UpdatePullRequest*", "codecommit:UpdateRepository*", "codecommit:UploadArchive" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Status": "Secret" } } } ] }

Sie können diese Strategie weiter verfeinern, indem Sie bestimmte Repositorys und nicht alle Repositorys als Ressourcen angeben. Sie können auch Richtlinien erstellen, die CodeCommit Aktionen für alle Repositorys zulassen, die nicht mit bestimmten Tags gekennzeichnet sind. Die folgende Richtlinie erlaubt beispielsweise das Äquivalent von AWSCodeCommitPowerUserBerechtigungen für CodeCommit Aktionen, mit der Ausnahme, dass sie nur Aktionen für Repositorys zulässt CodeCommit , die nicht mit den angegebenen Tags gekennzeichnet sind:

Anmerkung

Dieses Richtlinienbeispiel umfasst nur Aktionen für CodeCommit. Es umfasst keine Aktionen für andere AWS Dienste, die in der AWSCodeCommitPowerUserverwalteten Richtlinie enthalten sind. Weitere Informationen finden Sie unter AWS verwaltete Richtlinie: AWSCode CommitPowerUser..

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:Associate*", "codecommit:Batch*", "codecommit:CancelUploadArchive", "codecommit:CreateBranch", "codecommit:CreateCommit", "codecommit:CreatePullRequest*", "codecommit:CreateRepository", "codecommit:CreateUnreferencedMergeCommit", "codecommit:DeleteBranch", "codecommit:DeleteCommentContent", "codecommit:DeleteFile", "codecommit:DeletePullRequest*", "codecommit:Describe*", "codecommit:DisassociateApprovalRuleTemplateFromRepository", "codecommit:EvaluatePullRequestApprovalRules", "codecommit:GetBlob", "codecommit:GetBranch", "codecommit:GetComment*", "codecommit:GetCommit", "codecommit:GetDifferences*", "codecommit:GetFile", "codecommit:GetFolder", "codecommit:GetMerge*", "codecommit:GetObjectIdentifier", "codecommit:GetPullRequest*", "codecommit:GetReferences", "codecommit:GetRepository*", "codecommit:GetTree", "codecommit:GetUploadArchiveStatus", "codecommit:Git*", "codecommit:ListAssociatedApprovalRuleTemplatesForRepository", "codecommit:ListBranches", "codecommit:ListPullRequests", "codecommit:ListTagsForResource", "codecommit:Merge*", "codecommit:OverridePullRequestApprovalRules", "codecommit:Post*", "codecommit:Put*", "codecommit:TagResource", "codecommit:TestRepositoryTriggers", "codecommit:UntagResource", "codecommit:UpdateComment", "codecommit:UpdateDefaultBranch", "codecommit:UpdatePullRequest*", "codecommit:UpdateRepository*", "codecommit:UploadArchive" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Status": "Secret", "aws:ResourceTag/Team": "Saanvi" } } }, { "Effect": "Allow", "Action": [ "codecommit:CreateApprovalRuleTemplate", "codecommit:GetApprovalRuleTemplate", "codecommit:ListApprovalRuleTemplates", "codecommit:ListRepositories", "codecommit:ListRepositoriesForApprovalRuleTemplate", "codecommit:UpdateApprovalRuleTemplateContent", "codecommit:UpdateApprovalRuleTemplateDescription", "codecommit:UpdateApprovalRuleTemplateName" ], "Resource": "*" } ] }