Wie AWS CodePipeline funktioniert mit IAM - AWS CodePipeline

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.

Wie AWS CodePipeline funktioniert mit IAM

Bevor Sie IAM verwenden, um den Zugriff auf zu verwalten CodePipeline, sollten Sie wissen, mit welchen IAM-Funktionen Sie verwenden können. CodePipeline Einen allgemeinen Überblick darüber, wie CodePipeline und welche Funktionen mit IAM funktionieren AWS-ServicesAWS-Services , finden Sie im IAM-Benutzerhandbuch unter Diese Funktionen mit IAM.

Identitätsbasierte CodePipeline-Richtlinien

Mit identitätsbasierten IAM-Richtlinien können Sie angeben, welche Aktionen und Ressourcen zugelassen oder abgelehnt werden. Darüber hinaus können Sie die Bedingungen festlegen, unter denen Aktionen zugelassen oder abgelehnt werden. CodePipeline unterstützt bestimmte Aktionen, Ressourcen und Bedingungsschlüssel. Informationen zu sämtlichen Elementen, die Sie in einer JSON-Richtlinie verwenden, finden Sie in der IAM-Referenz für JSON-Richtlinienelemente im IAM-Benutzerhandbuch.

Aktionen

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer auf was Zugriff hat. Das heißt, welcher Prinzipal kann Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen.

Das Element Action einer JSON-Richtlinie beschreibt die Aktionen, mit denen Sie den Zugriff in einer Richtlinie zulassen oder verweigern können. Richtlinienaktionen haben normalerweise denselben Namen wie der zugehörige AWS API-Vorgang. Es gibt einige Ausnahmen, z. B. Aktionen, die nur mit Genehmigung durchgeführt werden können und für die es keinen passenden API-Vorgang gibt. Es gibt auch einige Operationen, die mehrere Aktionen in einer Richtlinie erfordern. Diese zusätzlichen Aktionen werden als abhängige Aktionen bezeichnet.

Schließen Sie Aktionen in eine Richtlinie ein, um Berechtigungen zur Durchführung der zugeordneten Operation zu erteilen.

Bei Richtlinienaktionen wird vor der Aktion das folgende Präfix CodePipeline verwendet:codepipeline:.

Um beispielsweise jemandem die Berechtigung zum Anzeigen der vorhandenen Pipelines im Konto zu erteilen, fügen Sie die Aktion codepipeline:GetPipeline in ihre Richtlinie ein. Richtlinienerklärungen müssen Action entweder ein NotAction Oder-Element enthalten. CodePipeline definiert einen eigenen Satz von Aktionen, die Aufgaben beschreiben, die Sie mit diesem Dienst ausführen können.

Um mehrere Aktionen in einer einzigen Anweisung anzugeben, trennen Sie sie wie folgt durch Kommata:

"Action": [ "codepipeline:action1", "codepipeline:action2"

Sie können auch Platzhalter verwenden, um mehrere Aktionen anzugeben. Beispielsweise können Sie alle Aktionen festlegen, die mit dem Wort Get beginnen, einschließlich der folgenden Aktion:

"Action": "codepipeline:Get*"

Eine Liste der CodePipeline Aktionen finden Sie AWS CodePipeline im IAM-Benutzerhandbuch unter Definierte Aktionen von.

Ressourcen

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das bedeutet die Festlegung, welcher Prinzipal Aktionen für welche Ressourcen unter welchen Bedingungen ausführen kann.

Das JSON-Richtlinienelement Resource gibt die Objekte an, auf welche die Aktion angewendet wird. Anweisungen müssen entweder ein – Resourceoder ein NotResource-Element enthalten. Als bewährte Methode geben Sie eine Ressource mit dem zugehörigen Amazon-Ressourcennamen (ARN) an. Sie können dies für Aktionen tun, die einen bestimmten Ressourcentyp unterstützen, der als Berechtigungen auf Ressourcenebene bezeichnet wird.

Verwenden Sie für Aktionen, die keine Berechtigungen auf Ressourcenebene unterstützen, z. B. Auflistungsoperationen, einen Platzhalter (*), um anzugeben, dass die Anweisung für alle Ressourcen gilt.

"Resource": "*"

CodePipeline Ressourcen und Abläufe

In ist CodePipeline die primäre Ressource eine Pipeline. In einer Richtlinie verwenden Sie einen Amazon-Ressourcennamen (ARN), um die Ressource zu identifizieren, für die die Richtlinie gilt. CodePipeline unterstützt andere Ressourcen, die mit der primären Ressource verwendet werden können, z. B. Stufen, Aktionen und benutzerdefinierte Aktionen. Diese werden als Unterressourcen bezeichnet. Diesen Ressourcen und Subressourcen sind eindeutige Amazon-Ressourcennamen (ARN) zugeordnet. Weitere Informationen zu ARNs finden Sie unter Amazon Resource Names (ARN) and AWS-Service Namespaces in der. Allgemeine Amazon Web Services-Referenz Um den mit Ihrer Pipeline verknüpften Pipeline-ARN abzurufen, finden Sie den Pipeline-ARN unter Einstellungen in der Konsole. Weitere Informationen finden Sie unter Den Pipeline-ARN und die Servicerolle ARN (Konsole) anzeigen.

Ressourcentyp ARN-Format

Pipeline

arn:aws:codepipeline: region: konto: Pipeline-Name

Stufe

arn:aws:codepipeline: region: konto: Pipeline-Name/Stagenname

Aktion

arn:aws:codepipeline: region: konto: Pipeline-Name/ Stagenname/ Aktionsname

Benutzerdefinierte Aktion arn:aws:codepipeline: region: konto:aktionstyp: eigentümer/kategorie/anbieter/version

CodePipeline Alle Ressourcen

arn:aws:codepipeline: *

Alle CodePipeline Ressourcen, die dem angegebenen Konto in der angegebenen Region gehören

arn:aws:codepipeline: region: konto: *

Anmerkung

Die meisten Dienste in AWS behandeln einen Doppelpunkt (:) oder einen Schrägstrich (/) als dasselbe Zeichen in ARNs. CodePipeline Verwendet jedoch eine exakte Übereinstimmung in den Ereignismustern und Regeln. Verwenden Sie also die richtigen ARN-Zeichen zum Erstellen von Ereignismustern, sodass sie mit der ARN-Syntax in der Pipeline übereinstimmen.

In gibt es API-Aufrufe CodePipeline, die Berechtigungen auf Ressourcenebene unterstützen. Berechtigungen auf Ressourcenebene geben an, ob ein API-Aufruf einen Ressourcen-ARN angeben können, oder ob der API-Aufruf nur alle Ressourcen unter Verwendung des Platzhalters angeben kann. Eine CodePipeline Referenz zu Berechtigungen ausführliche Beschreibung der Berechtigungen auf Ressourcenebene und eine Liste der CodePipeline API-Aufrufe, die Berechtigungen auf Ressourcenebene unterstützen, finden Sie unter.

Sie können beispielsweise folgendermaßen eine bestimmte Pipeline (myPipeline) in Ihrer Anweisung mit dem ARN angeben:

"Resource": "arn:aws:codepipeline:us-east-2:111222333444:myPipeline"

Sie können auch alle Pipelines angeben, die zu einem bestimmten Konto gehören, indem Sie das Platzhalterzeichen (*) wie folgt verwenden:

"Resource": "arn:aws:codepipeline:us-east-2:111222333444:*"

Wenn Sie alle Ressourcen angeben möchten oder wenn eine bestimmte API-Aktion keine ARNs unterstützt, verwenden Sie das Platzhalterzeichen (*) wie folgt im Resource-Element:

"Resource": "*"
Anmerkung

Beachten Sie bei der Erstellung von IAM-Richtlinien die standardmäßigen Sicherheitsempfehlungen zur Gewährung von geringsten Rechten, d. h. gewähren Sie nur die Berechtigungen, die für die Ausführung einer Aufgabe erforderlich sind. Wenn ein API-Aufruf ARNs unterstützt, unterstützt er Berechtigungen auf Ressourcenebene, und Sie müssen das Platzhalterzeichen (*) nicht verwenden.

Einige CodePipeline API-Aufrufe akzeptieren mehrere Ressourcen (z. B.). GetPipeline Um mehrere Ressourcen in einer einzigen Anweisung anzugeben, trennen Sie die ARNs mit Komma, wie folgt:

"Resource": ["arn1", "arn2"]

CodePipeline bietet eine Reihe von Operationen für die Arbeit mit den CodePipeline Ressourcen. Eine Liste der verfügbaren Operationen finden Sie unter CodePipeline Referenz zu Berechtigungen.

Bedingungsschlüssel

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher Prinzipal kann Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen.

Das Element Condition (oder Condition block) ermöglicht Ihnen die Angabe der Bedingungen, unter denen eine Anweisung wirksam ist. Das Element Condition ist optional. Sie können bedingte Ausdrücke erstellen, die Bedingungsoperatoren verwenden, z. B. ist gleich oder kleiner als, damit die Bedingung in der Richtlinie mit Werten in der Anforderung übereinstimmt.

Wenn Sie mehrere Condition-Elemente in einer Anweisung oder mehrere Schlüssel in einem einzelnen Condition-Element angeben, wertet AWS diese mittels einer logischen AND-Operation aus. Wenn Sie mehrere Werte für einen einzelnen Bedingungsschlüssel angeben, AWS wertet die Bedingung mithilfe einer logischen OR Operation aus. Alle Bedingungen müssen erfüllt werden, bevor die Berechtigungen der Anweisung gewährt werden.

Sie können auch Platzhaltervariablen verwenden, wenn Sie Bedingungen angeben. Beispielsweise können Sie einem IAM-Benutzer die Berechtigung für den Zugriff auf eine Ressource nur dann gewähren, wenn sie mit dessen IAM-Benutzernamen gekennzeichnet ist. Weitere Informationen finden Sie unter IAM-Richtlinienelemente: Variablen und Tags im IAM-Benutzerhandbuch.

AWS unterstützt globale Bedingungsschlüssel und dienstspezifische Bedingungsschlüssel. Eine Übersicht aller AWS globalen Bedingungsschlüssel finden Sie unter Kontextschlüssel für AWS globale Bedingungen im IAM-Benutzerhandbuch.

CodePipeline definiert seinen eigenen Satz von Bedingungsschlüsseln und unterstützt auch die Verwendung einiger globaler Bedingungsschlüssel. Eine Übersicht aller AWS globalen Bedingungsschlüssel finden Sie unter AWS Globale Bedingungskontextschlüssel im IAM-Benutzerhandbuch.

Alle Amazon EC2-Aktionen unterstützen die Bedingungsschlüssel aws:RequestedRegion und ec2:Region. Weitere Informationen finden Sie unter Beispiel: Einschränken des Zugriffs auf eine bestimmte Region.

Eine Liste der CodePipeline Bedingungsschlüssel finden Sie unter Bedingungsschlüssel für AWS CodePipeline im IAM-Benutzerhandbuch. Informationen zu den Aktionen und Ressourcen, mit denen Sie einen Bedingungsschlüssel verwenden können, finden Sie unter Definierte Aktionen von AWS CodePipeline.

Beispiele

Beispiele für CodePipeline identitätsbasierte Richtlinien finden Sie unter. AWS CodePipeline Beispiele für identitätsbasierte -Richtlinien

CodePipeline ressourcenbasierte Richtlinien

CodePipeline unterstützt keine ressourcenbasierten Richtlinien. Es wird jedoch ein Beispiel für eine ressourcenbasierte Richtlinie für den S3-Dienst bereitgestellt, der sich auf. CodePipeline

Beispiele

Beispiele für CodePipeline ressourcenbasierte Richtlinien finden Sie unter Beispiele für eine ressourcenbasierte AWS CodePipeline -Richtlinie

Autorisierung auf der Basis von CodePipeline -Tags

Sie können Tags an CodePipeline Ressourcen anhängen oder Tags in einer Anfrage an übergeben. CodePipeline Um den Zugriff auf der Grundlage von Tags zu steuern, geben Sie im Bedingungselement einer Richtlinie Tag-Informationen an, indem Sie die Schlüssel codepipeline:ResourceTag/key-name, aws:RequestTag/key-name, oder Bedingung aws:TagKeys verwenden. Weitere Informationen zum Markieren von CodePipeline Ressourcen finden Sie unterMarkieren von Ressourcen.

Ein Beispiel für eine identitätsbasierte Richtlinie zur Einschränkung des Zugriffs auf eine Ressource auf der Grundlage der Markierungen dieser Ressource finden Sie unter Verwenden von Tags zur Steuerung des Zugriffs auf Ressourcen CodePipeline.

CodePipeline IAM-Rollen

Eine IAM-Rolle ist eine Entität in Ihrem AWS Konto, die über bestimmte Berechtigungen verfügt.

Verwenden temporärer Anmeldeinformationen mit CodePipeline

Sie können temporäre Anmeldeinformationen verwenden, um sich über einen Verbund anzumelden, eine IAM-Rolle anzunehmen oder eine kontenübergreifende Rolle anzunehmen. Sie erhalten temporäre Sicherheitsanmeldedaten, indem Sie AWS STS API-Operationen wie AssumeRoleoder aufrufen GetFederationToken.

CodePipeline unterstützt die Verwendung temporärer Anmeldeinformationen.

Servicerollen

CodePipeline ermöglicht es einem Dienst, in Ihrem Namen eine Servicerolle zu übernehmen. Diese Rolle gewährt dem Service Zugriff auf Ressourcen in anderen Diensten, um eine Aktion in Ihrem Namen auszuführen. Servicerollen werden in Ihrem IAM-Konto angezeigt und gehören zum Konto. Dies bedeutet, dass ein IAM-Administrator die Berechtigungen für diese Rolle ändern kann. Dies kann jedoch die Funktionalität des Dienstes beeinträchtigen.

CodePipeline unterstützt Servicerollen.