IAM-Rolle für Amazon-ECS-Container-Instance - Amazon Elastic Container Service

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.

IAM-Rolle für Amazon-ECS-Container-Instance

Amazon-ECS-Container-Instances, einschließlich Amazon EC2 und externer Instances, führen den Amazon-ECS-Container-Agent aus und benötigen daher eine IAM-Rolle, damit der Service weiß, dass der Agent zu Ihnen gehört. Bevor Sie Container-Instances starten und sie in einem Cluster registrieren, müssen Sie eine IAM-Rolle erstellen, die ihre Container-Instances verwenden können. Die Rolle wird in dem Konto erstellt, mit dem Sie sich bei der Konsole anmelden oder die AWS CLI Befehle ausführen.

Wichtig

Wenn Sie externe Instances in Ihrem Cluster registrieren, erfordert die von Ihnen verwendete IAM-Rolle ebenfalls die Systems Manager Berechtigungen. Weitere Informationen finden Sie unter IAM-Rolle in Amazon ECS Anywhere.

Amazon ECS stellt die von AmazonEC2ContainerServiceforEC2Role verwaltete IAM-Richtlinie, die die Berechtigungen enthält, die für die Verwendung des vollständigen Amazon-ECS-Featuresatzes erforderlich sind, bereit. Diese verwaltete Richtlinie kann einer IAM-Rolle zugeordnet und Ihren Container-Instances zugeordnet werden. Alternativ können Sie die verwaltete Richtlinie als Leitfaden verwenden, wenn Sie eine benutzerdefinierte Richtlinie verwenden möchten. Die Container-Instance-Rolle stellt die erforderlichen Berechtigungen bereit, damit der Amazon ECS-Container-Agent und der Docker-Daemon AWS APIs in Ihrem Namen aufrufen können. Für weitere Informationen über die verwaltete Richtlinie siehe Amazon EC2 EC2-Rolle ContainerServicefor.

Amazon ECS unterstützt das Starten von Container-Instances mit erhöhter ENI-Dichte mit unterstützten Amazon-EC2-Instance-Typen. Wenn Sie diese Funktion verwenden, empfehlen wir Ihnen, zwei Container-Instance-Rollen zu erstellen. Aktivieren Sie die awsvpcTrunking Kontoeinstellung für eine Rolle und verwenden Sie diese Rolle für Aufgaben, die ENI-Trunking erfordern. Informationen zur awsvpcTrunking Kontoeinstellung finden Sie unterGreifen Sie mit Kontoeinstellungen auf Amazon ECS-Funktionen zu.

Erstellen Sie die Container-Instance-Rolle

Wichtig

Wenn Sie externe Instances in Ihrem Cluster registrieren, finden Sie weitere Informationen unter IAM-Rolle in Amazon ECS Anywhere.

Sie können jedoch die verwaltete IAM-Richtlinie für Container-Instances manuell erstellen und anfügen, damit Amazon ECS die Berechtigungen für zukünftige Features und Erweiterungen bei deren Einführung hinzufügen kann. Gehen Sie wie folgt vor, um die verwaltete IAM-Richtlinie bei Bedarf anzuhängen.

AWS Management Console
So erstellen Sie die Servicerolle für Elastic Container Service (IAM-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. Klicken Sie im Navigationsbereich der IAM-Konsole auf Rollen, und wählen Sie dann Rolle erstellen.

  3. Wählen Sie für Vertrauenswürdige Entität die Option AWS-Service aus.

  4. Wählen Sie für Service oder Anwendungsfall Elastic Container Service und dann den Anwendungsfall EC2-Rolle für Elastic Container Service aus.

  5. Wählen Sie Weiter aus.

  6. Vergewissern Sie sich im Abschnitt Permissions Policies, dass die AmazonEC2 ContainerServicefor EC2Role-Richtlinie ausgewählt ist.

    Wichtig

    Die verwaltete AmazonEC2 ContainerServicefor EC2Role-Richtlinie sollte an die IAM-Rolle der Container-Instance angehängt werden. Andernfalls erhalten Sie bei der Verwendung von zum Erstellen von Clustern eine Fehlermeldung. AWS Management Console

  7. Wählen Sie Weiter aus.

  8. Geben Sie als Rollenname Folgendes ein ecsInstanceRole

  9. Prüfen Sie die Rolle und klicken Sie dann auf Create Role (Rolle erstellen).

AWS CLI

Ersetzen Sie alle Benutzereingaben durch Ihre eigenen Werte.

  1. Erstellen Sie eine Datei mit dem Namen instance-role-trust-policy.json und den folgenden Inhalten.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } ] }
  2. Verwenden Sie den folgenden Befehl, um die Instance-IAM-Rolle mithilfe des Trust Policy-Dokuments zu erstellen.

    aws iam create-role \ --role-name ecsInstanceRole \ --assume-role-policy-document file://instance-role-trust-policy.json
  3. Erstellen Sie ein Instanzprofil ecsInstanceRole-profile mit dem Namen des create-instance-profileBefehls.

    aws iam create-instance-profile --instance-profile-name ecsInstanceRole-profile

    Beispielantwort

    { "InstanceProfile": { "InstanceProfileId": "AIPAJTLBPJLEGREXAMPLE", "Roles": [], "CreateDate": "2022-04-12T23:53:34.093Z", "InstanceProfileName": "ecsInstanceRole-profile", "Path": "/", "Arn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole-profile" } }
  4. Fügen Sie dem Instance-Profil ecsInstanceRole die IAM-Rolle ecsInstanceRole-profile hinzu.

    aws iam add-role-to-instance-profile \ --instance-profile-name ecsInstanceRole-profile \ --role-name ecsInstanceRole
  5. Hängen Sie die AmazonEC2ContainerServiceRoleForEC2Role verwaltete Richtlinie mit dem folgenden Befehl an die Rolle an.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role \ --role-name ecsInstanceRole

Nachdem Sie die Rolle erstellt haben, fügen Sie der Rolle zusätzliche Berechtigungen für die folgenden Funktionen hinzu.

Funktion

Zusätzliche Berechtigungen

Amazon ECR hat das Container-Image

Amazon-ECR-Berechtigungen

Lassen Sie Container-Instances von CloudWatch Logs überwachen

Berechtigungen für Container-Instances überwachen

Hosten Sie Konfigurationsdateien in einem Amazon S3 S3-Bucket

Amazon S3 S3-Lesezugriff

Amazon-ECR-Berechtigungen

Die Amazon ECS-Container-Instance-Rolle, die Sie mit Ihren Container-Instances verwenden, muss über die folgenden IAM-Richtlinienberechtigungen für Amazon ECR verfügen.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }

Wenn Sie die verwaltete Richtlinie AmazonEC2ContainerServiceforEC2Role für die Container-Instances nutzen, weist die Rolle die erforderlichen Berechtigungen auf. Überprüfen Sie, ob Ihre Rolle Amazon ECR unterstützt in IAM-Rolle für Amazon ECS-Container-Instance im Amazon Elastic Container Service-Entwicklerhandbuch.

Amazon S3 S3-Lesezugriff

Das Speichern von Konfigurationsinformationen in einem privaten Amazon S3-Bucket und das Erteilen der schreibgeschützten Zugriffsberechtigung Ihrer IAM-Rolle der Container-Instance ist eine sichere und bequeme Art, die Konfiguration der Container-Instance zur Startzeit zu ermöglichen. Sie können eine Kopie Ihrer ecs.config Datei in einem privaten Bucket speichern, Amazon EC2 EC2-Benutzerdaten zur Installation verwenden AWS CLI und dann Ihre Konfigurationsinformationen zum /etc/ecs/ecs.config Start der Instance kopieren.

Weitere Informationen dazu, wie Sie eine Datei ecs.config erstellen, sie in Amazon S3 speichern und Instances mit dieser Konfiguration starten, finden Sie unter Speichern der Amazon ECS-Container-Instance-Konfiguration in Amazon S3.

Sie können den folgenden AWS CLI Befehl verwenden, um Amazon S3 nur Lesezugriff für Ihre Container-Instance-Rolle zu gewähren. ecsInstanceRoleErsetzen Sie es durch den Namen der Rolle, die Sie erstellt haben.

aws iam attach-role-policy \ --role-name ecsInstanceRole \ --policy-arn arn:aws::iam::aws:policy/AmazonS3ReadOnlyAccess

Sie können Ihrer Rolle auch die IAM-Konsole verwenden, um Amazon S3 S3-Lesezugriff (AmazonS3ReadOnlyAccess) hinzuzufügen. Weitere Informationen finden Sie im Benutzerhandbuch unter Ändern einer Rollenberechtigungsrichtlinie (Konsole).AWS Identity and Access Management

Berechtigungen für Container-Instances überwachen

Bevor Ihre Container-Instances Protokolldaten an CloudWatch Logs senden können, müssen Sie eine IAM-Richtlinie erstellen, die es Ihren Container-Instances ermöglicht, die CloudWatch Logs-APIs zu verwenden, und dann müssen Sie diese Richtlinie anhängen. ecsInstanceRole

AWS Management Console
So verwenden Sie den JSON-Richtlinieneditor zum Erstellen einer Richtlinie
  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 im Navigationsbereich auf der linken Seite Policies (Richtlinien).

    Wenn Sie zum ersten Mal Policies (Richtlinien) auswählen, erscheint die Seite Welcome to Managed Policies (Willkommen bei verwalteten Richtlinien). Wählen Sie Get Started.

  3. Wählen Sie oben auf der Seite Create policy (Richtlinie erstellen) aus.

  4. Wählen Sie im Bereich Policy editor (Richtlinien-Editor) die Option JSON aus.

  5. Geben Sie folgendes JSON-Richtliniendokument ein:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
  6. Wählen Sie Weiter aus.

    Anmerkung

    Sie können jederzeit zwischen den Editoroptionen Visual und JSON wechseln. Wenn Sie jedoch Änderungen vornehmen oder im Visual-Editor Weiter wählen, strukturiert IAM Ihre Richtlinie möglicherweise um, um sie für den visuellen Editor zu optimieren. Weitere Informationen finden Sie unter Richtlinienrestrukturierung im IAM-Benutzerhandbuch.

  7. Geben Sie auf der Seite Prüfen und erstellen unter Richtlinienname einen Namen und unter Beschreibung (optional) eine Beschreibung für die Richtlinie ein, die Sie erstellen. Überprüfen Sie Permissions defined in this policy (In dieser Richtlinie definierte Berechtigungen), um die Berechtigungen einzusehen, die von Ihrer Richtlinie gewährt werden.

  8. Wählen Sie Create policy (Richtlinie erstellen) aus, um Ihre neue Richtlinie zu speichern.

Nachdem Sie die Richtlinie erstellt haben, fügen Sie die Richtlinie der Container-Instance-Rolle hinzu. Informationen zum Anhängen der Richtlinie an die Rolle finden Sie unter Ändern einer Rollenberechtigungsrichtlinie (Konsole) im AWS Identity and Access Management Benutzerhandbuch.

AWS CLI
  1. Erstellen Sie eine Datei mit dem Namen instance-cw-logs.json und folgendem Inhalt.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": ["arn:aws:logs:*:*:*"] } ] }
  2. Verwenden Sie den folgenden Befehl, um die IAM-Richtlinie mithilfe der JSON-Richtliniendokumentdatei zu erstellen.

    aws iam create-policy \ --policy-name cwlogspolicy \ --policy-document file://instance-cw-logs.json
  3. Rufen Sie den ARN der IAM-Richtlinie ab, die Sie mit dem folgenden Befehl erstellt haben. Ersetzen Sie cwlogspolicy durch den Namen der Richtlinie, die Sie erstellt haben.

    aws iam list-policies --scope Local --query 'Policies[?PolicyName==`cwlogsppolicy`].Arn'
  4. Verwenden Sie den folgenden Befehl, um die Richtlinie mithilfe des Richtlinien-ARN an die IAM-Rolle der Container-Instance anzuhängen.

    aws iam attach-role-policy \ --role-name ecsInstanceRole \ --policy-arn arn:aws:iam:111122223333:aws:policy/cwlogspolicy