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

Anmerkung

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

Ihre EC2 Amazon-Instances benötigen eine Genehmigung für den Zugriff auf die Amazon S3-Buckets oder GitHub Repositorys, in denen die Anwendungen gespeichert sind. Um EC2 Amazon-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 EC2 Amazon-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 der AWS CLI, der IAM Konsole oder dem erstellen. IAM APIs

Anmerkung

Sie können ein IAM Instance-Profil an eine EC2 Amazon-Instance anhängen, wenn Sie sie starten, oder an eine zuvor gestartete Instance. Weitere Informationen finden Sie unter Instance-Profile.

Erstellen Sie ein IAM Instance-Profil für Ihre EC2 Amazon-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, EC2 damit Amazon 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 Ihnen, diese Richtlinie nur auf die Amazon S3 S3-Buckets zu beschränken, auf die Ihre EC2 Amazon-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:::amzn-s3-demo-bucket/*", "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 IAMAutorisierungs - 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 sie den CodeDeploy Agenten installieren SSM 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 zu erstellenCodeDeployDemo-EC2-Instance-Profile. Das Instance-Profil ermöglicht es AmazonEC2, die benannte IAM Rolle an eine EC2 Amazon-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 IAM Abschnitt der AWS CLI Referenz weitere Informationen.

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

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

  1. Melden Sie sich bei der an AWS Management Console 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 aus JSON.

  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 Ihnen, diese Richtlinie nur auf die Amazon S3 S3-Buckets zu beschränken, auf die Ihre EC2 Amazon-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:::amzn-s3-demo-bucket/*", "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 IAMAutorisierungs - 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.

  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 EC2Anwendungsfall aus.

  12. Wählen Sie Weiter.

  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 den CodeDeploy Agenten mithilfe von Systems Manager zu installieren oder zu konfigurieren, aktivieren Sie das Kontrollkästchen neben mazonSSMManagedInstanceCoreA. Diese AWS verwaltete Richtlinie ermöglicht es einer Instanz, die Kernfunktionen des Systems Manager Manager-Service 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.

  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 EC2 Amazon-Instances anhängen können. Weitere Informationen finden Sie unter IAMRollen für Amazon EC2 im EC2Amazon-Benutzerhandbuch.