Schritt 3: Erstellen einer -Servicerolle für CodeDeploy - AWS CodeDeploy

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.

Schritt 3: Erstellen einer -Servicerolle für CodeDeploy

In AWS werden einem AWS-Service mittels Servicerollen Berechtigungen gewährt, damit er auf AWS-Ressourcen zugreifen kann. Die Richtlinien, die Sie der Servicerolle anfügen, bestimmen, auf welche Ressourcen der Service zugreifen, und was er mit diesen Ressourcen tun kann.

Der von Ihnen für CodeDeploy erstellten Servicerolle müssen die erforderlichen Berechtigungen für Ihre Computing-Plattform gewährt werden. Wenn Sie die Bereitstellung auf mehr als einer Computeplattform durchführen, erstellen Sie jeweils eine Servicerolle. Zum Hinzufügen von Berechtigungen fügen Sie eine oder mehrere der folgendenAWSbereitgestellte Richtlinien:

Fügen Sie für EC2-/lokale Bereitstellungen die OptionAWSCodeDeployRole-Richtlinie auf. Sie stellt die Berechtigungen für Ihre Servicerolle bereit:

  • Lesen Sie die Tags auf Ihren Instances oder identifizieren Sie Ihre Amazon EC2 Instances über Amazon EC2 Auto Scaling Gruppennamen.

  • Lesen, Erstellen, Aktualisieren und Löschen von Amazon EC2 Auto Scaling Gruppen, Lifecycle-Hooks und -Richtlinien.

  • Veröffentlichen von Informationen zu Amazon SNS -Themen.

  • Abrufen von Informationen zu CloudWatch Warnungen

  • Lesen und aktualisieren Sie Elastic Load Balancing.

    Anmerkung

    Wenn Sie Ihre Auto Scaling Gruppe mit einer Startvorlage erstellen, müssen Sie die folgenden Berechtigungen hinzufügen:

    • ec2:RunInstances

    • ec2:CreateTags

    • iam:PassRole

    Weitere Informationen finden Sie unterSchritt 3: Erstellen einer Servicerolle,Erstellen einer Startvorlage für eine Auto Scaling Gruppe, undUnterstützung der StartvorlageimAmazon EC2 Auto Scaling Benutzerhandbuch.

Wenn Sie für Amazon ECS-Bereitstellungen vollständigen Zugriff auf Support-Services gewähren möchten, fügen dieAWSCodeDeployRoleForECS-Richtlinie auf. Sie stellt die Berechtigungen für Ihre Servicerolle bereit:

  • Lesen, aktualisieren und löschen Sie Amazon ECS-Aufgabensätze.

  • Aktualisieren Sie -Zielgruppen, -Listener und -Regeln.

  • Rufen Sie AWS Lambda-Funktionen auf.

  • Greifen Sie auf Versionsdateien in Amazon S3 Buckets zu.

  • Abrufen von Informationen zu CloudWatch Warnungen

  • Veröffentlichen von Informationen zu Amazon SNS -Themen.

Wenn Sie für Amazon ECS-Bereitstellungen den Zugriff auf Support-Services einschränken möchten, fügen dieAWSCodeDeployRoleForECSLimited-Richtlinie auf. Sie stellt die Berechtigungen für Ihre Servicerolle bereit:

  • Lesen, aktualisieren und löschen Sie Amazon ECS-Aufgabensätze.

  • Abrufen von Informationen zu CloudWatch Warnungen

  • Veröffentlichen von Informationen zu Amazon SNS -Themen.

FürAWSWenn Lambda die Veröffentlichung auf Amazon SNS zulassen möchten, fügen dieAWSCodeDeployRoleForLambda-Richtlinie auf. Sie stellt die Berechtigungen für Ihre Servicerolle bereit:

  • Lesen, aktualisieren und rufen Sie AWS Lambda-Funktionen und -Aliasse auf.

  • Greifen Sie auf Versionsdateien in Amazon S3 Buckets zu.

  • Abrufen von Informationen zu CloudWatch Warnungen

  • Veröffentlichen von Informationen zu Amazon SNS -Themen.

FürAWSWenn Sie den Zugriff auf Amazon SNS einschränken möchten, fügen dieAWSCodeDeployRoleForLambdaLimited-Richtlinie auf. Sie stellt die Berechtigungen für Ihre Servicerolle bereit:

  • Lesen, aktualisieren und rufen Sie AWS Lambda-Funktionen und -Aliasse auf.

  • Greifen Sie auf Versionsdateien in Amazon S3 Buckets zu.

  • Abrufen von Informationen zu CloudWatch Warnungen

Im Rahmen der Einrichtung dieser Servicerolle aktualisieren Sie auch die Vertrauensbeziehung mit den Endpunkten, denen Zugriff gewährt werden soll.

Mit der IAM-Konsole können Sie eine Servicerolle erstellen, dieAWSCLI oder die IAM-APIs.

Erstellen einer -Servicerolle (Konsole)

  1. Melden Sie sich bei der AWS Management Console an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich Roles (Rollen) und dann Create role (Rolle erstellen).

  3. Klicken Sie auf derErstellen einer -RolleKlicken Sie auf der Seite aufAWS-Serviceund ausWählen Sie den Service aus, der diese Rolle verwendet.Wählen Sie auf der RegisterkarteCodeDeploy.

  4. Wählen Sie unter Select your use case (Anwendungsfall auswählen) Ihren Anwendungsfall:

    • Wählen Sie für EC2-/lokale Bereitstellungen die OptionCodeDeploy.

    • Wählen Sie für Amazon ECS-BereitstellungenECS CodeDeploy.

    • FürAWSWählen Sie für Lambda Bereitstellungen die OptionCodeDeploy für Lambda.

  5. Wählen Sie Weiter. Berechtigungen.

  6. Auf der Seite Attached permissions Policy (Angehängte Berechtigungsrichtlinie) wird die Berechtigungsrichtlinie angezeigt. Wählen Sie Weiter. Tags.

  7. Klicken Sie auf derPrüfenKlicken Sie auf der Seite inRollennameGeben Sie einen Namen für die Servicerolle ein (z. B.CodeDeployServiceRoleKlicken Sie auf) und danach aufErstellen einer -Rolle.

    Sie können auch eine Beschreibung für diese Servicerolle inRollenbeschreibung.

  8. Wenn diese Servicerolle zum Zugriff auf alle derzeit unterstützten Endpunkte berechtigt sein soll, sind Sie mit diesem Verfahren fertig.

    Um den Zugriff dieser Servicerolle auf einige Endpunkte zu beschränken, suchen Sie in der Liste der Rollen die von Ihnen erstellte Rolle, markieren diese und fahren mit dem nächsten Schritt fort.

  9. Wählen Sie auf der Registerkarte Trust relationships (Vertrauensstellungen) die Option Edit trust relationship (Vertrauensstellung bearbeiten).

  10. Sie sollten die folgende Richtlinie sehen, die der Servicerolle die Berechtigung zum Zugriff auf alle unterstützten Endpunkte gibt:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

    Um der Servicerolle nur Zugriff auf einige unterstützte Endpunkte zu gewähren, ersetzen Sie den Inhalt des Felds Policy Document (Richtliniendokument) durch die folgende Richtlinie. Entfernen Sie die Zeilen für die Endpunkte, auf die die Servicerolle nicht zugreifen können soll, und wählen Sie dann Vertrauensrichtlinie aktualisieren.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-2.amazonaws.com", "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.eu-west-3.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.eu-west-1.amazonaws.com", "codedeploy.eu-west-2.amazonaws.com", "codedeploy.eu-central-1.amazonaws.com", "codedeploy.ap-east-1.amazonaws.com", "codedeploy.ap-northeast-1.amazonaws.com", "codedeploy.ap-northeast-2.amazonaws.com", "codedeploy.ap-southeast-1.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com", "codedeploy.ap-south-1.amazonaws.com", "codedeploy.sa-east-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Weitere Informationen zum Erstellen von Servicerollen finden Sie unterErstellen einer Rolle zum Delegieren von Berechtigungen an eineAWS-ServiceimIAM-Benutzerhandbuch.

Erstellen einer Servicerolle (CLI)

  1. Erstellen Sie auf Ihrem Entwicklungscomputer eine Textdatei, beispielsweise mit dem Namen CodeDeployDemo-Trust.json. Mit dieser Datei wird CodeDeploy erlaubt, in Ihrem Namen zu agieren.

    Führen Sie eine der folgenden Aufgaben aus:

    • So gewähren Sie Zugriff auf alle unterstütztenAWSSpeichern Sie den folgenden Inhalt in der Datei:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    • Wenn Sie den Zugriff auf einige unterstützte Regionen beschränken möchten, geben Sie den folgenden Inhalt in die Datei ein und entfernen die Zeilen für die Regionen, die Sie vom Zugriff ausschließen möchten:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.us-east-2.amazonaws.com", "codedeploy.us-east-1.amazonaws.com", "codedeploy.us-west-1.amazonaws.com", "codedeploy.us-west-2.amazonaws.com", "codedeploy.eu-west-3.amazonaws.com", "codedeploy.ca-central-1.amazonaws.com", "codedeploy.eu-west-1.amazonaws.com", "codedeploy.eu-west-2.amazonaws.com", "codedeploy.eu-central-1.amazonaws.com", "codedeploy.ap-east-1.amazonaws.com", "codedeploy.ap-northeast-1.amazonaws.com", "codedeploy.ap-northeast-2.amazonaws.com", "codedeploy.ap-southeast-1.amazonaws.com", "codedeploy.ap-southeast-2.amazonaws.com", "codedeploy.ap-south-1.amazonaws.com", "codedeploy.sa-east-1.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
      Anmerkung

      Geben Sie nach dem letzten Endpunkt der Liste kein Komma ein.

  2. Rufen Sie aus dem gleichen Verzeichnis den Befehl create-role auf, um eine Servicerolle namens CodeDeployServiceRole unter Verwendung der Informationen zu erstellen, die in der gerade von Ihnen erstellten Textdatei enthalten sind:

    aws iam create-role --role-name CodeDeployServiceRole --assume-role-policy-document file://CodeDeployDemo-Trust.json
    Wichtig

    Achten Sie darauf, dass file:// vor dem Dateinamen steht. Dies ist bei diesem Befehl erforderlich.

    Notieren Sie sich den Wert des Eintrags Arn unter dem Objekt Role in der Befehlsausgabe. Sie brauchen ihn später beim Erstellen von Bereitstellungsgruppen. Wenn Sie den Wert vergessen, befolgen Sie die Anweisungen in Abrufen der Servicerolle ARN (CLI) .

  3. Welche verwaltete Richtlinie Sie verwenden, ist von der Datenverarbeitungsplattform abhängig.

    • Falls Ihre Bereitstellung auf eine EC2-/lokale Datenverarbeitungsplattform erfolgt:

      Rufen Sie dieattach-role-policy, um die Dienstrolle namensCodeDeployServiceRoledie Berechtigungen, die auf der von IAM verwalteten Richtlinie mit dem NamenAWSCodeDeployRole. Beispiel:

      aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole
    • Falls Ihre Bereitstellung auf eine erfolgtAWSLambda Datenverarbeitungsplattform:

      Rufen Sie dieattach-role-policy, um die Dienstrolle namensCodeDeployServiceRoledie Berechtigungen, die auf der von IAM verwalteten Richtlinie mit dem NamenAWSCodeDeployRoleForLambdaoder .AWSCodeDeployRoleForLambdaLimited. Beispiel:

      aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRoleForLambda
    • Falls Ihre Bereitstellung auf eine Amazon ECS-Datenverarbeitungsplattform erfolgt:

      Rufen Sie dieattach-role-policy, um die Dienstrolle namensCodeDeployServiceRoledie Berechtigungen, die auf der von IAM verwalteten Richtlinie mit dem NamenAWSCodeDeployRoleForECSoder .AWSCodeDeployRoleForECSLimited. Beispiel:

      aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/AWSCodeDeployRoleForECS

Weitere Informationen zum Erstellen von Servicerollen finden Sie unterErstellen einer Rolle für eineAWS-ServiceimIAM-Benutzerhandbuch.

Abrufen der -Servicerolle ARN (Konsole)

So verwenden Sie die IAM-Konsole, um den ARN der Servicerolle abzurufen:

  1. Melden Sie sich bei der AWS Management Console an, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich Roles aus.

  3. Geben Sie in das Textfeld Filter CodeDeployServiceRole ein und drücken Sie dann die Eingabetaste.

  4. Wählen Sie CodeDeployServiceRole.

  5. Notieren Sie sich den Wert des Felds Role ARN.

Abrufen der Servicerolle ARN (CLI)

So verwenden Sie denAWSRufen Sie die CLI auf, um den ARN der Servicerolle abzurufen, dieget-role-Befehl für die Dienstrolle namensCodeDeployServiceRole:

aws iam get-role --role-name CodeDeployServiceRole --query "Role.Arn" --output text

Der zurückgegebene Wert ist der ARN der Servicerolle.