Schritt 4: Erstellen Sie ein IAM-Instance-Profil für Ihre Amazon EC2 EC2-Instances - 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 4: Erstellen Sie ein IAM-Instance-Profil für Ihre Amazon EC2 EC2-Instances

Anmerkung

Wenn Sie die Amazon ECS- oder AWS Lambda-Rechenplattform verwenden, überspringen Sie diesen Schritt.

Ihre Amazon EC2 EC2-Instances benötigen eine Genehmigung für den Zugriff auf die Amazon S3 S3-Buckets oder GitHub Repositorys, in denen die Anwendungen gespeichert sind. Um Amazon EC2 EC2-Instances zu starten, die kompatibel sind mit CodeDeploy, müssen Sie eine zusätzliche IAM-Rolle, ein Instance-Profil, erstellen. Diese Anweisungen zeigen Ihnen, wie Sie ein IAM-Instance-Profil erstellen, das Sie an Ihre Amazon EC2 EC2-Instances anhängen können. Diese Rolle gibt dem CodeDeploy Agenten die Erlaubnis, auf die Amazon S3 S3-Buckets oder GitHub Repositorys zuzugreifen, in denen Ihre Anwendungen gespeichert sind.

Sie können ein IAM-Instance-Profil mit derAWS CLI, der IAM-Konsole oder den IAM-APIs erstellen.

Anmerkung

Sie können ein IAM-Instance-Profil einer Amazon-EC2-Instance beim Starten anfügen oder einer zuvor gestarteten Instance anfügen. Weitere Informationen finden Sie unter Instanzprofile.

Erstellen Sie ein IAM-Instance-Profil für Ihre Amazon EC2 EC2-Instances (CLI)

Diese Anleitung setzt voraus, dass Sie bereits die Anweisungen in den ersten drei Schritten unter Erste Schritte mit CodeDeploy befolgt haben.

  1. Erstellen Sie auf Ihrem Entwicklungscomputer eine Textdatei mit dem Namen CodeDeployDemo-EC2-Trust.json. Fügen Sie den folgenden Inhalt ein, damit Amazon EC2 in Ihrem Namen arbeiten kann:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Erstellen Sie im selben Verzeichnis eine Textdatei mit dem Namen CodeDeployDemo-EC2-Permissions.json. Fügen Sie den folgenden Inhalt ein:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    Anmerkung

    Wir empfehlen, diese Richtlinie nur auf die Amazon S3 S3-Buckets zu beschränken, auf die Ihre Amazon EC2 EC2-Instances zugreifen müssen. Stellen Sie sicher, dass Sie Zugriff auf die Amazon S3 S3-Buckets gewähren, die den CodeDeploy Agenten enthalten. Andernfalls kann ein Fehler auftreten, wenn der CodeDeploy Agent auf den Instances installiert oder aktualisiert wird. Um dem IAM-Instance-Profil nur Zugriff auf einige CodeDeploy Resource Kit-Buckets in Amazon S3 zu gewähren, verwenden Sie die folgende Richtlinie, entfernen Sie jedoch die Zeilen für Buckets, auf die Sie den Zugriff verhindern möchten:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    Anmerkung

    Wenn Sie die IAM-Autorisierung oder Amazon Virtual Private Cloud (VPC) -Endpoints mit verwenden möchten CodeDeploy, müssen Sie weitere Berechtigungen hinzufügen. Weitere Informationen finden Sie unter Verwendung CodeDeploy mit Amazon Virtual Private Cloud.

  3. Rufen Sie aus demselben Verzeichnis den create-role Befehl auf, um eine IAM-Rolle mit dem Namen zu erstellenCodeDeployDemo-EC2-Instance-Profile, der auf den Informationen in der ersten Datei basiert:

    Wichtig

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

    aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
  4. Rufen Sie aus dem gleichen Verzeichnis den Befehl put-role-policy auf, um der Rolle namens CodeDeployDemo-EC2-Instance-Profile unter Verwendung der Informationen in der zweiten Datei die Berechtigungen zuzuweisen:

    Wichtig

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

    aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document file://CodeDeployDemo-EC2-Permissions.json
  5. Rufen Sie den attach-role-policy auf, um der Rolle Amazon EC2 Systems Manager Manager-Berechtigungen zu erteilen, damit SSM den CodeDeploy Agenten installieren kann. Diese Richtlinie ist nicht erforderlich, wenn Sie den Agenten über die Befehlszeile aus dem öffentlichen Amazon S3 S3-Bucket installieren möchten. Erfahren Sie mehr über die Installation des CodeDeploy -Agenten.

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
  6. Rufen Sie den create-instance-profile Befehl gefolgt vom add-role-to-instance-profile Befehl auf, um ein IAM-Instance-Profil mit dem Namen CodeDeployDemo-EC2-Instance-Profile zu erstellen. Das Instance-Profil ermöglicht es Amazon EC2, die benannte IAM-Rolle an eine Amazon EC2 EC2-Instance CodeDeployDemo-EC2-Instance-Profile zu übergeben, wenn die Instance zum ersten Mal gestartet wird:

    aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile aws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile

    Wenn Sie den Namen des IAM-Instance-Profils benötigen, finden Sie unter list-instance-profiles-for-role im Abschnitt IAM der Referenz weitere Informationen. AWS CLI

Sie haben jetzt ein IAM-Instance-Profil erstellt, das Sie an Ihre Amazon EC2 EC2-Instances anhängen können. Weitere Informationen finden Sie unter IAM-Rollen für Amazon EC2 im Amazon EC2 EC2-Benutzerhandbuch.

Erstellen Sie ein IAM-Instance-Profil für Ihre Amazon EC2 EC2-Instances (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 in der IAM-Konsole im Navigationsbereich Richtlinien und dann Richtlinie erstellen aus.

  3. Wählen Sie auf der Seite „Berechtigungen angeben“ die Option JSON aus.

  4. Entfernen Sie den JSON Beispielcode.

  5. Fügen Sie folgenden Code ein:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    Anmerkung

    Wir empfehlen, diese Richtlinie nur auf die Amazon S3 S3-Buckets zu beschränken, auf die Ihre Amazon EC2 EC2-Instances zugreifen müssen. Stellen Sie sicher, dass Sie Zugriff auf die Amazon S3 S3-Buckets gewähren, die den CodeDeploy Agenten enthalten. Andernfalls kann ein Fehler auftreten, wenn der CodeDeploy Agent auf den Instances installiert oder aktualisiert wird. Um dem IAM-Instance-Profil nur Zugriff auf einige CodeDeploy Resource Kit-Buckets in Amazon S3 zu gewähren, verwenden Sie die folgende Richtlinie, entfernen Sie jedoch die Zeilen für Buckets, auf die Sie den Zugriff verhindern möchten:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    Anmerkung

    Wenn Sie die IAM-Autorisierung oder Amazon Virtual Private Cloud (VPC) -Endpoints mit verwenden möchten CodeDeploy, müssen Sie weitere Berechtigungen hinzufügen. Weitere Informationen finden Sie unter Verwendung CodeDeploy mit Amazon Virtual Private Cloud.

  6. Wählen Sie Weiter aus.

  7. Geben Sie auf der Seite Überprüfen und erstellen in das Feld Richtlinienname den Text einCodeDeployDemo-EC2-Permissions.

  8. (Optional) Geben Sie im Feld Description (Beschreibung) eine Beschreibung für die Richtlinie ein.

  9. Wählen Sie Create Policy (Richtlinie erstellen) aus.

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

  11. Wählen Sie unter Anwendungsfall den EC2-Anwendungsfall aus.

  12. Wählen Sie Weiter aus.

  13. Aktivieren Sie in der Liste der Richtlinien das Kontrollkästchen neben der Richtlinie, die Sie gerade erstellt haben (CodeDeployDemo-EC2-Permissions). Verwenden Sie ggf. das Suchfeld, um die Richtlinie zu finden.

  14. Um Systems Manager zur Installation oder Konfiguration des CodeDeploy Agenten zu verwenden, aktivieren Sie das Kontrollkästchen neben AmazonSSM ManagedInstanceCore. Diese AWS verwaltete Richtlinie ermöglicht einer Instance, Systems Manager-Service-Kernfunktionalität zu verwenden. Verwenden Sie ggf. das Suchfeld, um die Richtlinie zu finden. Diese Richtlinie ist nicht erforderlich, wenn Sie den Agenten über die Befehlszeile aus dem öffentlichen Amazon S3 S3-Bucket installieren möchten. Erfahren Sie mehr über die Installation des CodeDeploy-Agenten.

  15. Wählen Sie Weiter aus.

  16. Geben Sie auf der Seite Name, Überprüfung und Erstellung im Feld Rollenname einen Namen für die Servicerolle ein (z. B.CodeDeployDemo-EC2-Instance-Profile), und wählen Sie dann Rolle erstellen aus.

    Sie können unter Rollenbeschreibung auch eine Beschreibung für diese Servicerolle eingeben.

Sie haben jetzt ein IAM-Instance-Profil erstellt, das Sie an Ihre Amazon EC2 EC2-Instances anhängen können. Weitere Informationen finden Sie unter IAM-Rollen für Amazon EC2 im Amazon EC2 EC2-Benutzerhandbuch.