AWS CodeDeploy
Benutzerhandbuch (API-Version 2014-10-06)

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 AWS-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 Plattform für die Datenverarbeitung gewährt werden. Falls die Bereitstellung auf mehr als einer Plattform für die Datenverarbeitung erfolgt, erstellen Sie jeweils eine Servicerolle. Hängen Sie zum Hinzufügen der Berechtigungen mindestens eine der folgenden in AWS bereitgestellten Richtlinien an:

Hängen Sie für EC2/Lokal-Bereitstellungen die AWSCodeDeployRole-Richtlinie an. Sie stellt die Berechtigungen für Ihre Servicerolle bereit:

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

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

  • Aktualisieren Sie Elastic Load Balancing-Zielgruppen, -Listener und -Regeln.

  • Rufen Sie AWS Lambda-Funktionen auf.

  • Greifen Sie auf Revisionsdateien in Amazon S3-Buckets zu.

  • Informationen zu CloudWatch-Warnungen abrufen.

  • 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 Sie die AWSCodeDeployRoleForECSLimited-Richtlinie an. Sie stellt die Berechtigungen für Ihre Servicerolle bereit:

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

  • Informationen zu CloudWatch-Warnungen abrufen.

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

Hängen Sie für AWS Lambda-Bereitstellungen die AWSCodeDeployRoleForLambda-Richtlinie an. Sie stellt die Berechtigungen für Ihre Servicerolle bereit:

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

  • Greifen Sie auf Revisionsdateien in Amazon S3-Buckets zu.

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

  • Informationen zu CloudWatch-Warnungen abrufen.

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

Zur Erstellung einer Servicerolle können Sie die IAM-Konsole, die AWS CLI, oder die IAM-APIs verwenden.

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 und dann Create role.

  3. Wählen Sie auf der Seite Create role (Rolle erstellen) die Option AWS service (AWS-Service) und aus der Liste Choose the service that will use this role (Service auswählen, der diese Rolle verwenden wird) den Eintrag CodeDeploy.

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

    • Wählen Sie für EC2/Lokal-Bereitstellungen CodeDeploy aus.

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

    • Wählen Sie für AWS Lambda-Bereitstellungen CodeDeploy für Lambda aus.

  5. Wählen Sie Next: Permissions aus.

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

  7. Geben Sie auf der Seite Review (Prüfen) im Feld Role name (Rollenname) einen Namen für die Servicerolle ein (z. B. CodeDeployServiceRole), and then choose Create role.

    Sie können auch im Feld Role description (Rollenbeschreibung) eine Beschreibung für diese Servicerolle eingeben.

  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 unter Erstellen einer Rolle, um Berechtigungen an einen AWS-Service zu delegieren im IAM-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:

    • Um Zugriff auf alle unterstützten AWS-Regionen zu gewähren, speichern 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

    Be sure to include file:// before the file name. It is required in this command.

    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 des Servicerollen-ARN (CLI) .

  3. Welche verwaltete Richtlinie Sie verwenden, ist von der Plattform für die Datenverarbeitung abhängig.

    • Falls Ihre Bereitstellung auf eine EC2/Lokal Plattform für die Datenverarbeitung erfolgt:

      Rufen Sie den Befehl attach-role-policy auf, um der Servicerolle namens CodeDeployServiceRole die Berechtigungen basierend auf der verwalteten IAM-Richtlinie mit dem Namen AWSCodeDeployRole zu gewähren. Beispiel:

      aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole
    • Falls Ihre Bereitstellung auf eine AWS Lambda Plattform für die Datenverarbeitung erfolgt:

      Rufen Sie den Befehl attach-role-policy auf, um der Servicerolle namens CodeDeployServiceRole die Berechtigungen basierend auf der verwalteten IAM-Richtlinie mit dem Namen AWSCodeDeployRoleForLambda zu gewähren. 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 Plattform für die Datenverarbeitung erfolgt:

      Rufen Sie den Befehl attach-role-policy auf, um der Servicerolle namens CodeDeployServiceRole die Berechtigungen basierend auf der verwalteten IAM-Richtlinie mit dem Namen AWSCodeDeployRoleForECS oder AWSCodeDeployRoleForECSLimited zu gewähren. Beispiel:

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

Weitere Informationen zum Erstellen von Servicerollen finden Sie unter Erstellen einer Rolle für einen AWS-Service im IAM-Benutzerhandbuch.

Abrufen des Servicerollen-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 des Servicerollen-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.