AWS CodeStar Richtlinien und Berechtigungen auf Projektebene - AWS CodeStar

Am 31. Juli 2024 stellt Amazon Web Services (AWS) die Unterstützung für das Erstellen und Anzeigen von AWS CodeStar Projekten ein. Nach dem 31. Juli 2024 können Sie nicht mehr auf die AWS CodeStar Konsole zugreifen oder neue Projekte erstellen. Die von erstellten AWS Ressourcen AWS CodeStar, einschließlich Ihrer Quell-Repositorys, Pipelines und Builds, sind von dieser Änderung jedoch nicht betroffen und funktionieren weiterhin. AWS CodeStar Verbindungen und AWS CodeStar Benachrichtigungen sind von dieser Einstellung nicht betroffen.

 

Wenn Sie die Arbeit verfolgen, Code entwickeln und Ihre Anwendungen erstellen, testen und bereitstellen möchten, CodeCatalyst bietet Amazon einen optimierten Einstiegsprozess und zusätzliche Funktionen für die Verwaltung Ihrer Softwareprojekte. Erfahren Sie mehr über Funktionen und Preise von Amazon CodeCatalyst.

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.

AWS CodeStar Richtlinien und Berechtigungen auf Projektebene

Wenn Sie ein Projekt erstellen, AWS CodeStar erstellt es die IAM-Rollen und -Richtlinien, die Sie für die Verwaltung Ihrer Projektressourcen benötigen. Die Richtlinien fallen in drei Kategorien:

  • IAM-Richtlinien für Projektteammitglieder

  • IAM-Richtlinien für Auftragnehmerrollen

  • IAM-Richtlinien für eine Laufzeitausführungsrolle

IAM-Richtlinien für Teammitglieder

Wenn Sie ein Projekt erstellen, AWS CodeStar erstellt drei vom Kunden verwaltete Richtlinien für den Zugriff auf das Projekt als Eigentümer, Mitwirkender und Zuschauer. Alle AWS CodeStar Projekte enthalten IAM-Richtlinien für diese drei Zugriffsebenen. Diese Zugriffsebenen sind projektspezifisch und werden durch eine von IAM verwaltete Richtlinie mit einem Standardnamen definiert, wobei project-id die ID des AWS CodeStar Projekts ist (z. B.): my-first-projec

  • CodeStar_project-id_Owner

  • CodeStar_project-id_Contributor

  • CodeStar_project-id_Viewer

Wichtig

Diese Richtlinien können sich bis zu diesem Zeitpunkt ändern. AWS CodeStar Sie sollten nicht manuell bearbeitet werden. Wenn Sie Berechtigungen hinzufügen oder ändern möchten, fügen Sie dem IAM-Benutzer zusätzliche Richtlinien hinzu.

Sobald Sie Teammitglieder (IAM-Benutzer) zum Projekt hinzufügen und ihre Zugriffsebenen auswählen, wird die entsprechende Richtlinie dem IAM-Benutzer angefügt, wodurch dem Benutzer die entsprechenden Berechtigungen für das Handeln mit den Projektressourcen erteilt werden. In den meisten Fällen müssen Sie Richtlinien oder Berechtigungen nicht direkt in IAM anhängen oder verwalten. Es wird nicht empfohlen, einem IAM-Benutzer manuell eine AWS CodeStar Zugriffsebenenrichtlinie zuzuweisen. Falls unbedingt erforderlich, können Sie als Ergänzung zu einer AWS CodeStar Zugriffsebenenrichtlinie Ihre eigenen verwalteten Richtlinien oder Inline-Richtlinien erstellen, um einem IAM-Benutzer Ihre eigene Berechtigungsebene zuzuweisen.

Die Richtlinien sind eng auf Projektressourcen und spezifische Aktionen ausgerichtet. Beim Hinzufügen neuer Ressourcen zum Infrastruktur-Stack wird AWS CodeStar versucht, die Richtlinien der Teammitglieder so zu aktualisieren, dass sie auch Zugriffsberechtigungen für die neue Ressource enthalten, sofern es sich dabei um einen der unterstützten Ressourcentypen handelt.

Anmerkung

Die Richtlinien für Zugriffsebenen in einem AWS CodeStar Projekt gelten nur für dieses Projekt. Dadurch wird sichergestellt, dass Benutzer nur die AWS CodeStar Projekte sehen und mit ihnen interagieren können, für die sie berechtigt sind, und zwar auf der Ebene, die durch ihre Rolle bestimmt wird. Nur für Benutzer, die AWS CodeStar Projekte erstellen, sollte eine Richtlinie angewendet werden, die den Zugriff auf alle AWS CodeStar Ressourcen unabhängig vom Projekt ermöglicht.

Alle Richtlinien für AWS CodeStar Zugriffsebenen variieren je nach den AWS Ressourcen, die dem Projekt zugeordnet sind, dem die Zugriffsebenen zugeordnet sind. Im Gegensatz zu anderen AWS -Services werden diese Richtlinien angepasst, wenn das Projekt erstellt und im Zuge der Änderung von Projektressourcen aktualisiert wird. Aus diesem Grund gibt es keine kanonischen Eigentümer-, Beitragende- oder Betrachter-verwaltete Richtlinien.

AWS CodeStar Richtlinie zur Rolle des Besitzers

Die vom CodeStar_project-id_Owner Kunden verwaltete Richtlinie ermöglicht es einem Benutzer, alle Aktionen im AWS CodeStar Projekt ohne Einschränkungen durchzuführen. Dies ist die einzige Richtlinie, mit der ein Benutzer Teammitglieder hinzufügen oder entfernen kann. Der Inhalt der Richtlinie variiert je nach den mit dem Projekt verbundenen Ressourcen. Ein Beispiel finden Sie unter AWS CodeStar Richtlinie für die Rolle des Besitzers.

Ein IAM-Benutzer mit dieser Richtlinie kann alle AWS CodeStar Aktionen im Projekt ausführen, aber im Gegensatz zu einem IAM-Benutzer mit dieser AWSCodeStarFullAccess Richtlinie kann der Benutzer keine Projekte erstellen. Der Umfang der codestar:* Berechtigung ist auf eine bestimmte Ressource (das AWS CodeStar Projekt, das dieser Projekt-ID zugeordnet ist) beschränkt.

AWS CodeStar Richtlinie für die Rolle des Mitwirkenden

Die CodeStar_project-id_Contributor-kundenverwaltete Richtlinie ermöglicht einem Benutzer, zu einem Projekt beizutragen und das Projekt-Dashboard zu ändern; er kann jedoch keine Teammitglieder hinzufügen oder entfernen. Der Inhalt der Richtlinie variiert je nach den mit dem Projekt verbundenen Ressourcen. Ein Beispiel finden Sie unter Richtlinie für die AWS CodeStar-Beitragender-Rolle.

AWS CodeStar Richtlinie für Zuschauerrollen

Die CodeStar_project-id_Viewer-kundenverwaltete Richtlinie ermöglicht einem Benutzer, ein Projekt in AWS CodeStar anzuzeigen, jedoch nicht dessen Ressourcen zu ändern oder Teammitglieder hinzuzufügen oder zu entfernen. Der Inhalt der Richtlinie variiert je nach den mit dem Projekt verbundenen Ressourcen. Ein Beispiel finden Sie unter AWS CodeStar Richtlinie zur Zuschauerrolle .

IAM-Richtlinien für Auftragnehmerrollen

Wenn Sie Ihr AWS CodeStar Projekt nach dem 6. Dezember 2018 PDT erstellen, CodeStar erstellt AWS zwei Worker-Rollen CodeStar-project-id-ToolChain undCodeStar-project-id-CloudFormation. Eine Worker-Rolle ist eine projektspezifische IAM-Rolle, die AWS CodeStar erstellt wird, um sie an einen Service zu übergeben. Sie gewährt Berechtigungen, sodass der Dienst Ressourcen erstellen und Aktionen im Kontext Ihres Projekts ausführen kann. AWS CodeStar Für die Rolle „Toolchain Worker“ besteht eine Vertrauensbeziehung zu Toolchain-Services wie CodeBuild CodeDeploy, und. CodePipeline Den Mitgliedern des Projektteams (Eigentümern und Beitragenden) wird Zugriff erteilt, um die Auftragnehmerrolle an vertrauenswürdige nachgelagerte Services weiterzugeben. Ein Beispiel für die eingebundene Richtlinienanweisung für diese Rolle finden Sie unter AWS CodeStar Rollenrichtlinie für Toolchain Worker (nach dem 6. Dezember 2018 PDT).

Die CloudFormation Worker-Rolle umfasst Berechtigungen für ausgewählte Ressourcen, die von unterstützt werden AWS CloudFormation, sowie Berechtigungen zum Erstellen von IAM-Benutzern, -Rollen und -Richtlinien in Ihrem Anwendungsstapel. Es besteht auch eine Vertrauensbeziehung mit AWS CloudFormation. Um das Risiko einer Rechteeskalation und zerstörerischer Aktionen zu minimieren, enthält die AWS CloudFormation Rollenrichtlinie eine Bedingung, die für jede im Infrastrukturstapel erstellte IAM-Entität (Benutzer oder Rolle) die projektspezifische Berechtigungsgrenze vorschreibt. Ein Beispiel für die eingebundene Richtlinienanweisung für diese Rolle finden Sie unter AWS CloudFormation Richtlinie zur Arbeitnehmerrolle.

Für CodeStar AWS-Projekte, die vor dem 6. Dezember 2018 erstellt wurden, AWS CodeStar erstellt PDT individuelle Worker-Rollen für Toolketten-Ressourcen wie CodePipeline CodeBuild, und CloudWatch Events sowie eine Worker-Rolle für, AWS CloudFormation die eine begrenzte Anzahl von Ressourcen unterstützt. Jede dieser Rollen verfügt über eine etablierte Vertrauensstellung mit dem entsprechenden Service. Den Mitgliedern des Projektteams (Eigentümern und Beitragenden) und einige der anderen Auftragnehmerrollen wird Zugriff erteilt, um die Rolle an die vertrauenswürdigen nachgelagerten Services weiterzugeben. Berechtigungen für die Auftragnehmerrollen sind in einer eingebundenen Richtlinie definiert, die auf einen grundlegenden Satz von Aktionen beschränkt ist, die die Rolle für eine Reihe von Projektressourcen ausführen kann. Diese Berechtigungen sind statisch. Dazu gehören Berechtigungen für Ressourcen, die bei der Erstellung in das Projekt aufgenommen, aber nicht aktualisiert werden, wenn neue Ressourcen zum Projekt hinzugefügt werden. Beispiele dieser Richtlinienanweisungen finden Sie unter:

IAM-Richtlinie für die Ausführungsrolle

Für Projekte, die nach dem 6. Dezember 2018 PDT erstellt wurden, CodeStar erstellt AWS eine generische Ausführungsrolle für das Beispielprojekt in Ihrem Anwendungsstapel. Die Rolle wird unter Verwendung der Richtlinie für Berechtigungsgrenzen auf Projektressourcen reduziert. Wenn Sie das Beispielprojekt erweitern, können Sie zusätzliche IAM-Rollen erstellen. Die AWS CloudFormation Rollenrichtlinie verlangt, dass diese Rollen anhand der Berechtigungsgrenzen nach unten begrenzt werden, um eine Eskalation von Rechten zu vermeiden. Weitere Informationen finden Sie unter Hinzufügen einer IAM-Rolle zu einem Projekt.

Für Lambda-Projekte, die vor dem 6. Dezember 2018 PDT AWS CodeStar erstellt wurden, wird eine Lambda-Ausführungsrolle erstellt, der eine Inline-Richtlinie mit Berechtigungen zum Bearbeiten der Ressourcen im Projekt-Stack verknüpft ist. AWS SAM Beim Hinzufügen neuer Ressourcen zur SAM-Vorlage wird AWS CodeStar versucht, die Richtlinie für die Lambda-Ausführungsrolle so zu aktualisieren, dass sie Berechtigungen für die neue Ressource einschließt, sofern es sich um einen der unterstützten Ressourcentypen handelt.

Grenze der IAM-Berechtigungen

Wenn Sie nach dem 6. Dezember 2018 PDT ein Projekt erstellen, CodeStar erstellt AWS eine vom Kunden verwaltete Richtlinie und weist diese Richtlinie den IAM-Rollen im Projekt als Grenze für IAM-Berechtigungen zu. AWS CodeStar verlangt, dass alle im Anwendungsstapel erstellten IAM-Entitäten über eine Berechtigungsgrenze verfügen. Eine Berechtigungsgrenze kontrolliert die maximalen Berechtigungen, die die Rolle haben kann, weist der Rolle aber keine Berechtigungen zu. Berechtigungsrichtlinien definieren die Berechtigungen für die Rolle. Das bedeutet, dass jeder, der die Rolle verwendet, nicht mehr als die in der Berechtigungsgrenze enthaltenen Aktionen ausführen kann, unabhängig davon, wie viele zusätzliche Berechtigungen zu einer Rolle hinzugefügt werden. Informationen darüber, wie Berechtigungsrichtlinien und Berechtigungsgrenzen bewertet werden, finden Sie unter Policy Evaluation Logic im IAM-Benutzerhandbuch.

AWS CodeStar verwendet eine projektspezifische Berechtigungsgrenze, um eine Eskalation von Rechten auf Ressourcen außerhalb des Projekts zu verhindern. Die CodeStar AWS-Berechtigungsgrenze umfasst ARNs für Projektressourcen. Ein Beispiel für diese Richtlinienanweisung finden Sie unter AWS-Grenzrichtlinie für CodeStar Berechtigungen.

Die CodeStar AWS-Transformation aktualisiert diese Richtlinie, wenn Sie dem Projekt über den Anwendungsstapel (template.yml) eine unterstützte Ressource hinzufügen oder daraus entfernen.

Vorhandenen Projekten eine IAM-Berechtigungsgrenze hinzufügen

Wenn Sie ein CodeStar AWS-Projekt haben, das vor dem 6. Dezember 2018 PDT erstellt wurde, sollten Sie den IAM-Rollen im Projekt manuell eine Berechtigungsgrenze hinzufügen. Als bewährte Methode empfehlen wir die Verwendung einer projektspezifischen Grenze, die dem Projekt nur Ressourcen hinzufügt, um eine Eskalation von Berechtigungen auf Ressourcen außerhalb des Projekts zu vermeiden. Gehen Sie wie folgt vor, um die von AWS CodeStar verwaltete Berechtigungsgrenze zu verwenden, die im Zuge der Weiterentwicklung des Projekts aktualisiert wird.

  1. Melden Sie sich bei der AWS CloudFormation Konsole an und suchen Sie die Vorlage für den Toolketten-Stack in Ihrem Projekt. Diese Vorlage hat den Namen awscodestar-project-id.

  2. Wählen Sie die Vorlage aus und wählen Sie Actions (Aktionen) und danach View/Edit template in Designer (Vorlage in Designer anzeigen/bearbeiten).

  3. Suchen Sie den Abschnitt Resources und fügen Sie folgendes Snippet oben im Abschnitt ein.

    PermissionsBoundaryPolicy: Description: Creating an IAM managed policy for defining the permissions boundary for an AWS CodeStar project Type: AWS::IAM::ManagedPolicy Properties: ManagedPolicyName: !Sub 'CodeStar_${ProjectId }_PermissionsBoundary' Description: 'IAM policy to define the permissions boundary for IAM entities created in an AWS CodeStar project' PolicyDocument: Version: '2012-10-17' Statement: - Sid: '1' Effect: Allow Action: ['*'] Resource: - !Sub 'arn:${AWS::Partition}:cloudformation:${AWS::Region}:${AWS::AccountId}:stack/awscodestar-${ProjectId}-*'

    Möglicherweise benötigen Sie zusätzliche IAM-Berechtigungen, um den Stack von der AWS CloudFormation Konsole aus zu aktualisieren.

  4. (Optional) Wenn Sie anwendungsspezifische IAM-Rollen erstellen möchten, führen Sie diesen Schritt aus. Aktualisieren Sie in der IAM-Konsole die Inline-Richtlinie, die der AWS CloudFormation Rolle für Ihr Projekt zugeordnet ist, sodass sie den folgenden Ausschnitt enthält. Möglicherweise benötigen Sie zusätzliche IAM-Ressourcen, um die Richtlinie zu aktualisieren.

    { "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::{AccountId}:role/CodeStar-{ProjectId}*", "Effect": "Allow" }, { "Action": [ "iam:CreateServiceLinkedRole", "iam:GetRole", "iam:DeleteRole", "iam:DeleteUser" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "iam:AttachRolePolicy", "iam:AttachUserPolicy", "iam:CreateRole", "iam:CreateUser", "iam:DeleteRolePolicy", "iam:DeleteUserPolicy", "iam:DetachUserPolicy", "iam:DetachRolePolicy", "iam:PutUserPermissionsBoundary", "iam:PutRolePermissionsBoundary" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PermissionsBoundary": "arn:aws:iam::{AccountId}:policy/CodeStar_{ProjectId}_PermissionsBoundary" } }, "Effect": "Allow" }
  5. Führen Sie eine Änderung durch Ihre Projektpipeline, sodass AWS die Berechtigungsgrenze mit den entsprechenden Berechtigungen CodeStar aktualisiert.

Weitere Informationen finden Sie unter Hinzufügen einer IAM-Rolle zu einem Projekt.