Schritt 3: Erstellen Sie eine 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 Sie eine 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. Um Berechtigungen hinzuzufügen, fügen Sie eine oder mehrere der folgenden Optionen an:AWSbereitgestellte Richtlinien:

Hängen Sie für EC2-/lokale Bereitstellungen denAWSCodeDeployRole-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, Lebenszyklus-Hooks und Skalierungsrichtlinien.

  • 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 -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 für Elastic Load Balancing.

  • 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 -Bereitstellungen den Zugriff auf Support-Services einschränken möchten, fügen Sie 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 Sie für Lambda Bereitstellungen die Veröffentlichung auf Amazon SNS erlauben möchten, fügen Sie 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 Sie 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.

Erstellen Sie eine -Servicerolle mit der IAM-Konsole, demAWS CLIoder die IAM-APIs.

Erstellen Sie eine -Servicerolle (Konsole)

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die IAM-Management-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 -RolleWählen Sie auf der SeiteAWS-Serviceund aus derWählen Sie den Service aus, der diese Rolle verwendet.Wählen Sie auf der ListeCodeDeploy.

  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-BereitstellungenCodeDeploy - ECS.

    • FürAWSWählen Sie für Lambda Bereitstellungen aus,CodeDeploy 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üfenangezeigten, 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 eine -RolleAWS-ServiceimIAM-Benutzerhandbuch.

Erstellen Sie eine 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 einer EC2/lokalen Datenverarbeitungsplattform erfolgt:

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

      aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole
    • Falls Ihre Bereitstellung auf eineAWSPlattform für Lambda Datenverarbeitung:

      Rufen Sie dieattach-role-policy, um die Dienstrolle namensCodeDeployServiceRoledie Berechtigungen, die auf der von IAM verwalteten Richtlinie mit dem NamenAWSCodeDeployRoleForLambdaoder .AWSCodeDeployRoleForLambdaLimited. Zum 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. Zum 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-Management-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)

Um mithilfe der AWS CLI den ARN der Servicerolle abzurufen, rufen Sie den Befehl get-role für die Servicerolle namens CodeDeployServiceRole auf:

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

Der zurückgegebene Wert ist der ARN der Servicerolle.