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 ECS Anywhere IAM-Rolle.

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 Berechtigungen bereit, die der Amazon-ECS-Container-Agent und der Docker-Daemon benötigen, um - AWS APIs in Ihrem Namen aufzurufen. Für weitere Informationen über die verwaltete Richtlinie siehe AmazonEC2ContainerServiceforEC2Role.

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, 2 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. Weitere Informationen zur -awsvpcTrunkingKontoeinstellung finden Sie unter Zugreifen auf Amazon-ECS-Funktionen über Kontoeinstellungen.

Erstellen der Container-Instance (ecsInstanceRole)-Rolle

Wichtig

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

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 anzufügen.

AWS Management Console
So erstellen Sie die IAM-Rolle ecsInstanceRole für Ihre Container-Instances
  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

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

  3. Wählen Sie den AWS Servicerollentyp und dann unter Anwendungsfälle für andere AWS Services die Option Elastic Container Service aus.

  4. Wählen Sie den Anwendungsfall EC2 Role for Elastic Container Service (EC2-Rolle für Elastic-Container-Service) aus und wählen Sie dann Next: Permissions (Weiter: Berechtigungen).

  5. Überprüfen Sie im Abschnitt Berechtigungsrichtlinien, ob die AmazonEC2ContainerServiceforEC2Role-Richtlinie ausgewählt ist, und wählen Sie dann Weiter aus.

    Wichtig

    Die von AmazonEC2ContainerServiceforEC2Role verwaltete Richtlinie sollte an die Container-Instance-IAM-Rolle angehängt werden. Andernfalls erhalten Sie eine Fehlermeldung, indem Sie AWS Management Console zum Erstellen von Clustern verwenden.

  6. Geben Sie für Rollenname ecsInstanceRole und optional eine Beschreibung ein.

  7. Geben Sie für Tags hinzufügen (optional) alle benutzerdefinierten Tags an, die mit der Richtlinie verknüpft werden sollen, und wählen Sie Weiter: Prüfen.

  8. Prüfen Sie Ihre Rolleninformationen und klicken Sie dann auf Create role, um den Vorgang abzuschließen.

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 Vertrauensrichtliniendokuments zu erstellen.

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

    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

Hinzufügen von schreibgeschütztem Amazon-S3-Zugriff auf Ihre Container-Instance-(ecsInstanceRole)-Rolle

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-Benutzerdaten verwenden, um zu installieren, AWS CLI und dann Ihre Konfigurationsinformationen in kopieren/etc/ecs/ecs.config, wenn die Instance gestartet wird.

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 Container-Instance-Konfiguration in Amazon S3.

Sie können den folgenden AWS CLI Befehl verwenden, um Amazon S3 schreibgeschützten Zugriff für Ihre Container-Instance-Rolle zu erlauben. Ersetzen Sie durch ecsInstanceRole 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 auch die IAM-Konsole verwenden, um Ihrer Rolle schreibgeschützten Amazon S3-Zugriff (AmazonS3ReadOnlyAccess) hinzuzufügen. Weitere Informationen finden Sie unter Ändern einer Rollenberechtigungsrichtlinie (Konsole) im AWS Identity and Access Management -Benutzerhandbuch.

Erforderliche Berechtigungen für die Überwachung von Container-Instances

Bevor Ihre Container-Instances Protokolldaten an - CloudWatch Protokolle senden können, müssen Sie eine IAM-Richtlinie erstellen, damit Ihre Container-Instances die CloudWatch Logs-APIs verwenden können. Anschließend müssen Sie diese Richtlinie an anfügenecsInstanceRole.

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 an die Container-Instance-Rolle an. Informationen zum Anfügen 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 von Ihnen erstellten Richtlinie.

    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 Container-Instance-IAM-Rolle anzuhängen.

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