Serviceverknüpfte Rolle für Amazon ECS - Amazon ECS

Serviceverknüpfte Rolle für Amazon ECS

Amazon ECS nutzt eine serviceverknüpfte Rolle für die Berechtigungen, die für den Aufruf anderer AWS-Services in Ihrem Namen benötigt werden. Weitere Informationen finden Sie unter Verwenden von serviceverknüpften Rollen im IAM-Benutzerhandbuch.

Von der serviceverknüpften Rolle erteilte Berechtigungen

Amazon ECS verwendet die serviceverknüpfte Rolle namens AWSServiceRoleForECS, damit Amazon ECS AWS-APIs in Ihrem Auftrag abrufen kann.

Die serviceverknüpfte AWSServiceRoleForECS-Rolle vertraut dem ecs.amazonaws.com-Service-Prinzipal im Rahmen der Übernahme der Rolle.

Die Rollenberechtigungsrichtlinie erlaubt es Amazon ECS, die folgenden Aktionen für Ressourcen durchzuführen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECSTaskManagement", "Effect": "Allow", "Action": [ "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:Describe*", "ec2:DetachNetworkInterface", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DeregisterTargets", "elasticloadbalancing:Describe*", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:RegisterTargets", "route53:ChangeResourceRecordSets", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:Get*", "route53:List*", "route53:UpdateHealthCheck", "servicediscovery:DeregisterInstance", "servicediscovery:Get*", "servicediscovery:List*", "servicediscovery:RegisterInstance", "servicediscovery:UpdateInstanceCustomHealthStatus" ], "Resource": "*" }, { "Sid": "AutoScaling", "Effect": "Allow", "Action": [ "autoscaling:Describe*" ], "Resource": "*" }, { "Sid": "AutoScalingManagement", "Effect": "Allow", "Action": [ "autoscaling:DeletePolicy", "autoscaling:PutScalingPolicy", "autoscaling:SetInstanceProtection", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Null": { "autoscaling:ResourceTag/AmazonECSManaged": "false" } } }, { "Sid": "AutoScalingPlanManagement", "Effect": "Allow", "Action": [ "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlans" ], "Resource": "*" }, { "Sid": "CWAlarmManagement", "Effect": "Allow", "Action": [ "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm" ], "Resource": "arn:aws:cloudwatch:*:*:alarm:*" }, { "Sid": "ECSTagging", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*" }, { "Sid": "CWLogGroupManagement", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DescribeLogGroups", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/ecs/*" }, { "Sid": "CWLogStreamManagement", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/ecs/*:log-stream:*" }, { "Sid": "ExecuteCommandSessionManagement", "Effect": "Allow", "Action": [ "ssm:DescribeSessions" ], "Resource": "*" }, { "Sid": "ExecuteCommand", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ecs:*:*:task/*", "arn:aws:ssm:*:*:document/AmazonECS-ExecuteInteractiveCommand" ] } ] }

Erstellen der serviceverknüpften Rolle

In den meisten Situationen müssen Sie die Service-verknüpfte Rolle nicht manuell erstellen. Wenn Sie beispielsweise einen neuen Cluster erstellen (z. B. mit der Wahrnehmung bei der ersten Ausführung von Amazon ECS, dem Assistenten zum Erstellen von Clustern oder AWS CLI oder den SDKs) oder einen Service in AWS Management Console erstellen oder aktualisieren, erstellt Amazon ECS die serviceverknüpfte Rolle für Sie, sofern diese nicht bereits vorhanden ist.

Sie müssen Berechtigungen konfigurieren, damit eine juristische Stelle von IAM (z. B. Benutzer, Gruppe oder Rolle) eine servicegebundene Rolle erstellen, bearbeiten oder löschen kann.

So erlauben Sie einer IAM-Entität das Erstellen der serviceverknüpften Rolle namens AWSServiceRoleForECS

Fügen Sie die folgende Anweisung der Berechtigungsrichtlinie für die IAM-Entität hinzu, die die serviceverknüpfte Rolle erstellen soll:

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS*", "Condition": {"StringLike": {"iam:AWSServiceName": "ecs.amazonaws.com"}} }

Erstellen einer serviceverknüpften Rolle in IAM (AWS CLI)

Sie können IAM-Befehle über AWS Command Line Interface zum Erstellen einer serviceverknüpften Rolle mit der Vertrauensrichtlinie und den enthaltenen Richtlinien, die der Service benötigt, um die Rolle zuzuweisen, verwenden.

So erstellen Sie eine serviceverknüpfte Rolle (CLI)

Verwenden Sie den folgenden Befehl:

$ aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com

Bearbeiten der serviceverknüpften Rolle

Da möglicherweise verschiedene Entitäten auf die Rolle verweisen, kann der Rollenname nach dem Erstellen einer servicegebundenen Rolle nicht mehr geändert werden. Sie können die von AWS besessene IAM-Richtlinie, die von der Amazon ECS-serviceverknüpften Rolle verwendet wird, nicht bearbeiten, da sie alle erforderlichen Berechtigungen enthält, die Amazon ECS benötigt. Sie können jedoch die Beschreibung der Rolle bearbeiten.

So erlauben Sie einer IAM-Entität das Bearbeiten der Beschreibung für die serviceverknüpfte Rolle AWSServiceRoleForECS

Fügen Sie die folgende Anweisung der Berechtigungsrichtlinie für die IAM-Entität hinzu, die die Beschreibung einer serviceverknüpften Rolle bearbeiten soll:

{ "Effect": "Allow", "Action": [ "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS*", "Condition": {"StringLike": {"iam:AWSServiceName": "ecs.amazonaws.com"}} }

Löschen der serviceverknüpften Rolle

Wenn Sie Amazon ECS nicht mehr verwenden, empfehlen wir, die serviceverknüpfte Rolle zu löschen. Auf diese Weise haben Sie keine ungenutzte juristische Stelle, die nicht aktiv überwacht oder verwaltet wird. Sie müssen jedoch alle Amazon ECS-Cluster in allen Regionen löschen, bevor Sie die serviceverknüpfte Rolle löschen können.

So erlauben Sie einer IAM-Entität das Löschen der serviceverknüpften Rolle namens AWSServiceRoleForECS

Fügen Sie die folgende Anweisung der Berechtigungsrichtlinie für die IAM-Entität hinzu, die eine serviceverknüpfte Rolle löschen soll:

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS*", "Condition": {"StringLike": {"iam:AWSServiceName": "ecs.amazonaws.com"}} }

Bereinigen einer serviceverknüpften Rolle

Bevor Sie mit IAM eine serviceverknüpfte Rolle löschen können, müssen Sie sich zunächst vergewissern, dass die Rolle über keine aktiven Sitzungen verfügt, und alle Amazon ECS-Cluster in allen AWS-Regionen löschen.

So überprüfen Sie, ob die serviceverknüpfte Rolle über eine aktive Sitzung verfügt

  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im Navigationsbereich Roles (Rollen) und dann den Namen (nicht das Kontrollkästchen) AWSServiceRoleForECS aus.

  3. Wählen Sie auf der Seite Summary Access Advisor und überprüfen Sie die letzten Aktivitäten auf die serviceverknüpfte Rolle.

    Anmerkung

    Wenn Sie sich nicht sicher sind, ob Amazon ECS die Rolle AWSServiceRoleForECS verwendet, können Sie versuchen, die Rolle zu löschen. Wenn der Service die Rolle verwendet, schlägt die Löschung fehl und Sie können die Regionen anzeigen, in denen die Rolle verwendet wird. Wenn die Rolle verwendet wird, müssen Sie warten, bis die Sitzung beendet wird, bevor Sie die Rolle löschen können. Die Sitzung für eine serviceverknüpfte Rolle können Sie nicht widerrufen.

Zum Löschen von Amazon ECS-Ressourcen, die von der serviceverknüpften Rolle AWSServiceRoleForECS verwendet werden

Sie müssen alle Amazon ECS-Cluster in allen AWS-Regionen löschen, bevor Sie die AWSServiceRoleForECS-Rolle löschen können.

Löschen einer serviceverknüpften Rolle in IAM (Konsole)

Sie können die IAM-Konsole für das Löschen einer serviceverknüpften Rolle verwenden.

So löschen Sie eine serviceverknüpfte Rolle (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 im Navigationsbereich der IAM Console Roles. Aktivieren Sie dann das Kontrollkästchen (nicht den Namen oder die Zeile) neben AWSServiceRoleForECS.

  3. Wählen Sie Delete role (Rolle löschen) aus.

  4. Überprüfen Sie im Bestätigungsdialogfeld die letzten Service-Zugriffsdaten, die zeigen, wann jede der ausgewählten Rollen zuletzt auf einen AWS-Service zugegriffen hat. Auf diese Weise können Sie leichter bestätigen, ob die Rolle derzeit aktiv ist. Wenn Sie fortfahren möchten, wählen Sie Yes, Delete aus, um die serviceverknüpfte Rolle zur Löschung zu übermitteln.

  5. Sehen Sie sich die Benachrichtigungen in der IAM-Konsole an, um den Fortschritt der Löschung der serviceverknüpften Rolle zu überwachen. Da die Löschung der serviceverknüpften IAM-Rolle asynchron erfolgt, kann die Löschung nach dem Übermitteln der Rolle für die Löschung erfolgreich sein oder fehlschlagen.

    • Wenn der Vorgang erfolgreich ist, wird die Rolle aus der Liste entfernt und eine Benachrichtigung des Erfolgs oben auf der Seite angezeigt.

    • Wenn der Vorgang fehlschlägt, können Sie in den Benachrichtigungen View details oder View Resources auswählen, um zu erfahren, warum die Löschung fehlgeschlagen ist. Wenn die Löschung fehlschlägt, weil die Rolle Ressourcen des Services verwendet, enthält die Benachrichtigung eine Liste der Ressourcen – sofern der Service diese Informationen zurückgibt. Sie können dann die Ressourcen bereinigen und die Löschung erneut durchführen.

      Anmerkung

      Möglicherweise müssen Sie diesen Vorgang abhängig von den Informationen, die der Service zurückgibt, mehrmals wiederholen. Ihre serviceverknüpfte Rolle könnte beispielsweise sechs Ressourcen verwenden und Ihr Service Informationen zu fünf davon zurückgeben. Wenn Sie die fünf Ressourcen bereinigen und die Rolle erneut für den Löschvorgang übermitteln, schlägt die Löschung fehl und der Service gibt die eine verbleibende Ressource zurück. Ein Service kann alle Ressourcen zurückgeben oder nur einige bzw. gar keine.

    • Wenn die Aufgabe fehlschlägt und die Benachrichtigung keine Liste der Ressourcen enthält, gibt der Service möglicherweise diese Informationen nicht zurück. Informationen zum Bereinigen von Ressourcen für diesen Service finden Sie unter AWS-Services, die mit IAM funktionieren. Um die Dokumentation der serviceverknüpften Rolle für den Service anzuzeigen, suchen Sie Ihren Service in der Tabelle und wählen Sie den Link Yes.

Löschen einer serviceverknüpften Rolle in IAM (AWS CLI)

Sie können die IAM-Befehle in AWS Command Line Interface zum Löschen einer serviceverknüpften Rolle verwenden.

So löschen Sie eine serviceverknüpfte Rolle (CLI)

  1. Da eine serviceverknüpfte Rolle nicht gelöscht werden kann, wenn sie verwendet wird oder ihr Ressourcen zugeordnet sind, müssen Sie eine Löschungsanfrage übermitteln. Diese Anforderung kann verweigert werden, wenn diese Bedingungen nicht erfüllt sind. Sie benötigen die deletion-task-id aus der Antwort, um den Status der Löschaufgabe zu überprüfen. Geben Sie den folgenden Befehl ein, um eine Löschanforderung für eine serviceverknüpfte Rolle zu übermitteln:

    $ aws iam delete-service-linked-role --role-name AWSServiceRoleForECS+OPTIONAL-SUFFIX
  2. Verwenden Sie den folgenden Befehl, um den Status der Löschaufgabe zu überprüfen:

    $ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id

    Der Status der Löschaufgabe kann NOT_STARTED, IN_PROGRESS, SUCCEEDED oder FAILED lauten. Wenn die Löschung fehlschlägt, gibt der Aufruf den Grund zurück, sodass Sie das Problem beheben können. Wenn die Löschung fehlschlägt, weil die Rolle Ressourcen des Services verwendet, enthält die Benachrichtigung eine Liste der Ressourcen – sofern der Service diese Informationen zurückgibt. Sie können dann die Ressourcen bereinigen und die Löschung erneut durchführen.

    Anmerkung

    Möglicherweise müssen Sie diesen Vorgang abhängig von den Informationen, die der Service zurückgibt, mehrmals wiederholen. Ihre serviceverknüpfte Rolle könnte beispielsweise sechs Ressourcen verwenden und Ihr Service Informationen zu fünf davon zurückgeben. Wenn Sie die fünf Ressourcen bereinigen und die Rolle erneut für den Löschvorgang übermitteln, schlägt die Löschung fehl und der Service gibt die eine verbleibende Ressource zurück. Ein Service kann alle Ressourcen zurückgeben oder nur einige bzw. gar keine. Informationen zum Bereinigen von Ressourcen für einen Service, der keine Ressourcen meldet, finden Sie unter AWS-Services, die mit IAM funktionieren. Um die Dokumentation der serviceverknüpften Rolle für den Service anzuzeigen, suchen Sie Ihren Service in der Tabelle und wählen Sie den Link Yes.

Löschen einer serviceverknüpften Rolle in IAM (AWS-API)

Sie können die IAM-API für das Löschen einer serviceverknüpften Rolle verwenden.

So löschen Sie eine serviceverknüpfte Rolle (API)

  1. Um eine Löschanfrage für eine serviceverknüpfte Rolle zu übermitteln, rufen Sie DeleteServiceLinkedRole auf. Geben Sie in der Anforderung den Rollennamen AWSServiceRoleForECS an.

    Da eine serviceverknüpfte Rolle nicht gelöscht werden kann, wenn sie verwendet wird oder ihr Ressourcen zugeordnet sind, müssen Sie eine Löschungsanfrage übermitteln. Diese Anforderung kann verweigert werden, wenn diese Bedingungen nicht erfüllt sind. Sie benötigen die DeletionTaskId aus der Antwort, um den Status der Löschaufgabe zu überprüfen.

  2. Rufen Sie GetServiceLinkedRoleDeletionStatus auf, um den Status der Löschung zu überprüfen. Geben Sie in der Anfrage die DeletionTaskId an.

    Der Status der Löschaufgabe kann NOT_STARTED, IN_PROGRESS, SUCCEEDED oder FAILED lauten. Wenn die Löschung fehlschlägt, gibt der Aufruf den Grund zurück, sodass Sie das Problem beheben können. Wenn die Löschung fehlschlägt, weil die Rolle Ressourcen des Services verwendet, enthält die Benachrichtigung eine Liste der Ressourcen – sofern der Service diese Informationen zurückgibt. Sie können dann die Ressourcen bereinigen und die Löschung erneut durchführen.

    Anmerkung

    Möglicherweise müssen Sie diesen Vorgang abhängig von den Informationen, die der Service zurückgibt, mehrmals wiederholen. Ihre serviceverknüpfte Rolle könnte beispielsweise sechs Ressourcen verwenden und Ihr Service Informationen zu fünf davon zurückgeben. Wenn Sie die fünf Ressourcen bereinigen und die Rolle erneut für den Löschvorgang übermitteln, schlägt die Löschung fehl und der Service gibt die eine verbleibende Ressource zurück. Ein Service kann alle Ressourcen zurückgeben oder nur einige bzw. gar keine. Informationen zum Bereinigen von Ressourcen für einen Service, der keine Ressourcen meldet, finden Sie unter AWS-Services, die mit IAM funktionieren. Um die Dokumentation der serviceverknüpften Rolle für den Service anzuzeigen, suchen Sie Ihren Service in der Tabelle und wählen Sie den Link Yes.