ECSIAMAmazon-Container-Instance-Rolle - 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.

ECSIAMAmazon-Container-Instance-Rolle

ECSAmazon-Container-Instances, einschließlich Amazon- EC2 und externer Instances, führen den ECS Amazon-Container-Agenten aus und benötigen eine IAM Rolle, damit der Service weiß, dass der Agent 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 IAM Rolle, die Sie verwenden, auch Systems Manager Manager-Berechtigungen. Weitere Informationen finden Sie unter Amazon ECS IAM Anywhere-Rolle.

Amazon ECS stellt die AmazonEC2ContainerServiceforEC2Role verwaltete IAM Richtlinie bereit, die die Berechtigungen enthält, die für die Nutzung des gesamten ECS Amazon-Funktionsumfangs erforderlich sind. Diese verwaltete Richtlinie kann einer IAM Rolle zugewiesen 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 bietet die erforderlichen Berechtigungen, damit der ECS Amazon-Container-Agent und der Docker-Daemon in Ihrem Namen aufrufen AWS APIs können. Für weitere Informationen über die verwaltete Richtlinie siehe Amazon EC2ContainerServiceforEC2Role.

Amazon ECS unterstützt das Starten von Container-Instances mit erhöhter ENI Dichte mithilfe unterstützter EC2 Amazon-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 den Kontoeinstellungen auf ECS Amazon-Funktionen zu.

Erstellen Sie die Container-Instance-Rolle

Wichtig

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

Sie können die Rolle manuell erstellen und die verwaltete IAM Richtlinie für Container-Instances anhängen, ECS damit Amazon Berechtigungen für future Funktionen und Verbesserungen hinzufügen kann, sobald diese eingeführt werden. Gehen Sie wie folgt vor, um die verwaltete IAM Richtlinie bei Bedarf anzuhängen.

AWS Management Console
Um die Servicerolle für Elastic Container Service (IAMKonsole) zu erstellen
  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 der IAM Konsole Rollen und anschließend Rolle erstellen aus.

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

  4. Wählen Sie für Service oder Anwendungsfall die Option Elastic Container Service und dann den Anwendungsfall EC2Rolle für Elastic Container Service aus.

  5. Wählen Sie Weiter.

  6. Vergewissern Sie sich, dass im Abschnitt Berechtigungsrichtlinien die EC2ContainerServiceforEC2RoleAmazon-Richtlinie ausgewählt ist.

    Wichtig

    Die von Amazon EC2ContainerServiceforEC2Role verwaltete Richtlinie sollte an die IAM Container-Instance-Rolle angehängt werden, andernfalls erhalten Sie eine Fehlermeldung bei der Verwendung von AWS Management Console to create clusters.

  7. Wählen Sie Weiter.

  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

Alle ersetzen user input mit deinen eigenen Werten.

  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 IAM Instanzrolle 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

ECRAmazon-Berechtigungen

Lassen Sie CloudWatch Logs Container-Instances überwachen

Berechtigungen für Container-Instances überwachen

Hosten Sie Konfigurationsdateien in einem Amazon S3 S3-Bucket

Amazon S3 S3-Lesezugriff

ECRAmazon-Berechtigungen

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

{ "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. Um zu überprüfen, ob Ihre Rolle Amazon unterstütztECR, siehe Amazon ECS Container Instance IAM Role im Amazon Elastic Container Service Developer Guide.

Amazon S3 S3-Lesezugriff

Das Speichern von Konfigurationsinformationen in einem privaten Bucket in Amazon S3 und die Gewährung von Lesezugriff auf Ihre IAM Container-Instance-Rolle ist eine sichere und bequeme Möglichkeit, die Container-Instance-Konfiguration beim Start zu ermöglichen. Sie können eine Kopie Ihrer ecs.config Datei in einem privaten Bucket speichern, EC2 Amazon-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 ECS Amazon-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. Ersetzen ecsInstanceRole mit dem 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 die IAM Konsole auch verwenden, um Ihrer Rolle Amazon S3 S3-Lesezugriff (AmazonS3ReadOnlyAccess) hinzuzufügen. Weitere Informationen finden Sie im AWS Identity and Access Management Benutzerhandbuch unter Ändern einer Richtlinie für Rollenberechtigungen (Konsole).

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 erlaubt, die CloudWatch Logs zu verwendenAPIs, und dann müssen Sie diese Richtlinie anhängenecsInstanceRole.

AWS Management Console
Um den JSON Richtlinien-Editor zum Erstellen einer Richtlinie zu verwenden
  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 die JSONOption aus.

  5. Geben Sie das folgende 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.

    Anmerkung

    Sie können jederzeit zwischen den Optionen Visual und JSONEditor wechseln. Wenn Sie jedoch Änderungen vornehmen oder im Visual Editor auf Weiter klicken, kann es IAM sein, dass Ihre Richtlinie neu strukturiert wird, um sie für den visuellen Editor zu optimieren. Weitere Informationen finden Sie im IAMBenutzerhandbuch unter Neustrukturierung von Richtlinien.

  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 ARN die IAM Richtlinie ab, die Sie mit dem folgenden Befehl erstellt haben. Ersetzen cwlogspolicy mit dem 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 der Richtlinie an die IAM Container-Instance-Rolle anzuhängenARN.

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