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 die Amazon-ECS-Aufgabenausführung
Die Aufgabenausführungsrolle erteilt dem Amazon-ECS-Container- und Fargate-Agenten die Berechtigung, AWS -API-Aufrufe in Ihrem Namen durchzuführen. Die IAM-Rolle für die Aufgabenausführung ist je nach den Anforderungen Ihrer Aufgabe erforderlich. Sie können mehrere Aufgabenausführungsrollen für verschiedene Zwecke und Dienste haben, die Ihrem Konto zugeordnet sind.
Anmerkung
Auf diese Berechtigungen können die Container in der Aufgabe nicht zugreifen. Informationen zu den IAM-Berechtigungen, die Ihre Anwendung zur Ausführung benötigt, finden Sie unter IAM-Rolle für Amazon ECS-Aufgaben.
Im Folgenden sind häufige Anwendungsfälle für eine IAM-Rolle für die Aufgabenausführung aufgeführt:
-
Ihre Aufgabe wird auf AWS Fargateoder auf einer externen Instanz gehostet und:
-
ruft ein Container-Image aus einem privaten Amazon ECR-Repository ab.
-
ruft ein Container-Image aus einem privaten Amazon ECR-Repository in einem anderen Konto als dem Konto ab, das die Aufgabe ausführt.
-
sendet CloudWatch Container-Protokolle mithilfe des Protokolltreibers an
awslogs
Logs. Weitere Informationen finden Sie unter Amazon ECS-Protokolle senden an CloudWatch .
-
-
Ihre Aufgaben werden entweder auf Amazon-Instances AWS Fargate oder auf EC2 Amazon-Instances gehostet und:
-
verwendet die private Registrierungsauthentifizierung. Weitere Informationen finden Sie unter Authentifizierungsberechtigungen für private Registrierungen.
-
verwendet Runtime Monitoring.
-
Die Aufgabendefinition verweist mithilfe von Secrets Manager Manager-Geheimnissen oder AWS Systems Manager Parameter Store-Parametern auf sensible Daten. Weitere Informationen finden Sie unter Secrets Manager- oder Systems Manager Manager-Berechtigungen.
-
Anmerkung
Die Aufgabenausführungsrolle wird von Amazon-ECS-Container-Agent Version 1.16.0 und höher unterstützt.
Amazon ECS stellt die verwaltete Richtlinie mit dem Namen Amazon bereit ECSTaskExecutionRolePolicy , die die Berechtigungen enthält, die für die oben beschriebenen allgemeinen Anwendungsfälle erforderlich sind. Weitere Informationen finden Sie unter Amazon ECSTask ExecutionRolePolicy im AWS Managed Policy Reference Guide. Für spezielle Anwendungsfälle kann es erforderlich sein, Ihrer Rolle zur Aufgabenausführung Inline-Richtlinien hinzuzufügen
Die Amazon ECS-Konsole erstellt eine Rolle zur Aufgabenausführung. Sie können die verwaltete IAM-Richtlinie für Aufgaben manuell anhängen, damit Amazon ECS Berechtigungen für future Funktionen und Verbesserungen hinzufügen kann, sobald diese eingeführt werden. Sie können die Suche in der IAM-Konsole verwenden, um zu suchen ecsTaskExecutionRole
und festzustellen, ob Ihr Konto bereits über die Rolle „Aufgabenausführung“ verfügt. Weitere Informationen finden Sie unter IAM-Konsolensuche im IAM-Benutzerhandbuch.
Wenn Sie als authentifizierter Benutzer Bilder abrufen, ist es weniger wahrscheinlich, dass Sie von den Änderungen in Bezug auf Nutzung und Beschränkungen betroffen sind. Docker Hub
Durch die Verwendung von Amazon ECR und Amazon ECR Public können Sie die von Docker auferlegten Beschränkungen umgehen. Wenn Sie Images von Amazon ECR abrufen, trägt dies auch dazu bei, die Netzwerk-Pull-Zeiten zu verkürzen und Datenübertragungsänderungen zu reduzieren, wenn der Datenverkehr Ihre VPC verlässt.
Wenn Sie Fargate verwenden, müssen Sie sich bei einer privaten Image-Registry mit repositoryCredentials
authentifizieren. Es ist nicht möglich, die Umgebungsvariablen ECS_ENGINE_AUTH_TYPE
oder ECS_ENGINE_AUTH_DATA
für den Amazon-ECS-Container-Agenten festzulegen oder die ecs.config
-Datei für auf Fargate gehostete Aufgaben zu ändern. Weitere Informationen finden Sie unter Private Registrierungsauthentifizierung für Aufgaben.
Erstellen der -Aufgabenausführungsrolle
Wenn Ihr Konto noch nicht über eine Rolle zur Aufgabenausführung verfügt, gehen Sie wie folgt vor, um die Rolle zu erstellen.
Nachdem Sie die Rolle erstellt haben, fügen Sie der Rolle zusätzliche Berechtigungen für die folgenden Funktionen hinzu.
Funktion | Zusätzliche Berechtigungen |
---|---|
Rufen Sie Container-Images von privaten Registern außerhalb von AWS (wie Docker Hub, Quay.io oder Ihrer eigenen privaten Registrierung) mit Secrets Manager Manager-Anmeldeinformationen ab |
Authentifizierungsberechtigungen für private Registrierungen |
Übergeben Sie sensible Daten mit Systems Manager oder Secrets Manager | Secrets Manager- oder Systems Manager Manager-Berechtigungen |
Lassen Sie Fargate-Aufgaben Amazon ECR-Bilder über Schnittstellenendpunkte abrufen | |
Hosten Sie Konfigurationsdateien in einem Amazon S3 S3-Bucket | |
Container Insights zur Anzeige von Amazon ECS-Lebenszyklusereignissen konfigurieren | |
Amazon ECS-Lebenszyklusereignisse in Container Insights anzeigen |
Authentifizierungsberechtigungen für private Registrierungen
Die private Registrierungsauthentifizierung ermöglicht es Ihren Amazon ECS-Aufgaben, Container-Images von privaten Registern außerhalb von AWS (wie Docker Hub, Quay.io oder Ihrer eigenen privaten Registrierung) abzurufen, für die Authentifizierungsdaten erforderlich sind. Diese Funktion verwendet Secrets Manager, um Ihre Registrierungsdaten sicher zu speichern, auf die dann in Ihrer Aufgabendefinition mithilfe des repositoryCredentials
Parameters verwiesen wird.
Weitere Informationen zur Konfiguration der privaten Registrierungsauthentifizierung finden Sie unter Verwenden von AWS Non-Container-Images in Amazon ECS.
Um Zugriff auf die Geheimnisse zu gewähren, die Ihre privaten Registrierungsdaten enthalten, fügen Sie der Rolle „Aufgabenausführung“ die folgenden Berechtigungen als Inline-Richtlinie hinzu. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von IAM-Richtlinien.
-
secretsmanager:GetSecretValue
— Erforderlich, um die privaten Registrierungsdaten von Secrets Manager abzurufen. -
kms:Decrypt
– Nur erforderlich, wenn Ihr Geheimnis einen benutzerdefinierten KMS-Schlüssel verwendet und nicht den Standardschlüssel. Der Amazon-Ressourcenname (ARN) für Ihren benutzerdefinierten Schlüssel muss als Ressource hinzugefügt werden.
Das folgende Beispiel einer Inline-Richtlinie fügt die Berechtigungen hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:secret_name", "arn:aws:kms:<region>:<aws_account_id>:key/key_id" ] } ] }
Secrets Manager- oder Systems Manager Manager-Berechtigungen
Die Erlaubnis, dem Container-Agenten zu erlauben, die erforderlichen AWS Systems Manager oder Secrets Manager Manager-Ressourcen abzurufen. Weitere Informationen finden Sie unter Übergeben Sie vertrauliche Daten an einen Amazon ECS-Container.
Verwenden von Secrets Manager
Um Zugriff auf die Secrets-Manager-Geheimnisse zu gewähren, die Sie erstellen, müssen Sie die folgenden Berechtigungen manuell zur Aufgabendefinitionsrolle hinzufügen. Informationen zum Verwalten von Berechtigungen finden Sie unter Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im IAM-Benutzerhandbuch.
-
secretsmanager:GetSecretValue
– Erforderlich, wenn Sie auf ein Secrets Manager-Geheimnis verweisen. Fügt die Berechtigung zum Abrufen des Secrets von Secrets Manager hinzu.
Das folgende Beispiel einer Richtlinie fügt die erforderlichen Berechtigungen hinzu.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:
region
:aws_account_id
:secret:secret_name
" ] } ] }
Verwenden von Systems Manager
Wichtig
Für Aufgaben, die den EC2 Starttyp verwenden, müssen Sie die Konfigurationsvariable des ECS-Agenten verwendenECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE=true
, um diese Funktion nutzen zu können. Sie können sie während der Erstellung der Container-Instance zur Datei ./etc/ecs/ecs.config
hinzufügen oder sie zu einer vorhandenen Instance hinzufügen und dann den ECS-Agenten neu starten. Weitere Informationen finden Sie unter Konfiguration des Amazon-ECS-Container-Agenten.
Um Zugriff auf die von Ihnen erstellten Systems-Manager-Parameter-Store-Parameter zu erhalten, fügen Sie der Aufgabenausführungsrolle manuell die folgenden Berechtigungen als Inline Richtlinie hinzu. Informationen zum Verwalten von Berechtigungen finden Sie unter Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im IAM-Benutzerhandbuch.
-
ssm:GetParameters
– Erforderlich, wenn in einer Aufgabendefinition auf einen Parameter-Store-Parameter von Systems Manager verwiesen wird. Fügt die Berechtigung zum Abrufen von Systems-Manager-Parametern hinzu. -
secretsmanager:GetSecretValue
– Erforderlich, wenn Sie direkt auf ein Secrets-Manager-Geheimnis verweisen oder wenn der Parameter Systems Manager Parameter Store in einer Aufgabendefinition auf ein Secrets-Manager-Geheimnis verweist. Fügt die Berechtigung zum Abrufen des Secrets von Secrets Manager hinzu. -
kms:Decrypt
– Nur erforderlich, wenn Ihr Geheimnis einen kundenverwalteten Schlüssel verwendet und nicht den Standardschlüssel. Der ARN für Ihren benutzerdefinierten Schlüssel sollte als Ressource hinzugefügt werden. Fügt die Berechtigung zum Entschlüsseln des vom Kunden verwalteten Schlüssels hinzu.
Das folgende Beispiel einer Richtlinie fügt die erforderlichen Berechtigungen hinzu:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:
region
:aws_account_id
:parameter/parameter_name
", "arn:aws:secretsmanager:region
:aws_account_id
:secret:secret_name
", "arn:aws:kms:region
:aws_account_id
:key/key_id
" ] } ] }
Fargate-Aufgaben: Abrufen von Amazon ECR-Images über die Berechtigungen von Schnittstellen-Endpunkten
Beim Starten von Aufgaben, die den Starttyp Fargate verwenden und Images aus Amazon ECR abrufen, wenn Amazon ECR für die Verwendung eines Schnittstellen-VPC-Endpunkts konfiguriert ist, können Sie den Aufgabenzugriff auf eine bestimmte VPC oder einen bestimmten VPC-Endpunkt beschränken. Dazu erstellen Sie eine Aufgabenausführungsrolle für die zu verwendenden Aufgaben, die IAM-Bedingungsschlüssel nutzen.
Verwenden Sie die folgenden globalen IAM-Bedingungsschlüssel zum Einschränken des Zugriffs auf eine bestimmte VPC oder einen bestimmten VPC-Endpunkt. Weitere Informationen finden Sie unter Globale AWS -Bedingungskontextschlüssel.
-
aws:SourceVpc
: Beschränkt den Zugriff auf eine bestimmte VPC. Sie können die VPC auf die VPC beschränken, die die Aufgabe und den Endpunkt hostet. -
aws:SourceVpce
: Beschränkt den Zugriff auf einen bestimmten VPC-Endpunkt.
Die folgenden Richtlinie einer Aufgabenausführungsrolle stellt ein Beispiel für das Hinzufügen von Bedingungsschlüsseln bereit:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpce": "
vpce-xxxxxx
", "aws:sourceVpc": "vpc-xxxxx
" } } } ] }
Amazon-ECR-Berechtigungen
Die folgenden Berechtigungen sind erforderlich, wenn Sie Container-Images aus privaten Amazon ECR-Repositorys abrufen müssen. Die Rolle zur Aufgabenausführung sollte über diese Berechtigungen verfügen, damit der Amazon ECS-Container und die Fargate-Agenten Container-Images in Ihrem Namen abrufen können. Bei einfachen ECS-Implementierungen sollten diese Berechtigungen der Aufgabenausführungsrolle und nicht der Aufgaben-IAM-Rolle hinzugefügt werden.
Die verwaltete Richtlinie (AmazonECSTaskExecutionRolePolicy
) für die Amazon ECS-Aufgabenausführung enthält die erforderlichen Berechtigungen zum Abrufen von Bildern aus Amazon ECR. Wenn Sie die verwaltete Richtlinie verwenden, müssen Sie diese Berechtigungen nicht separat hinzufügen.
Wenn Sie eine benutzerdefinierte Richtlinie erstellen, fügen Sie die folgenden Berechtigungen hinzu, um das Abrufen von Bildern aus Amazon ECR zu ermöglichen:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Beachten Sie, dass sich diese Berechtigungen von den Berechtigungen unterscheiden, die in der Aufgaben-IAM-Rolle möglicherweise erforderlich sind, wenn Ihr Anwendungscode direkt mit Amazon ECR APIs interagieren muss. Informationen zu Aufgaben-IAM-Rollenberechtigungen für Amazon ECR finden Sie unter. Amazon-ECR-Berechtigungen
Amazon S3 S3-Dateispeicherberechtigungen
Wenn Sie eine Konfigurationsdatei angeben, die in Amazon S3 gehostet wird, muss die Aufgabenausführungsrolle die s3:GetObject
Berechtigung für die Konfigurationsdatei und die s3:GetBucketLocation
Berechtigung für den Amazon S3 S3-Bucket enthalten, in dem sich die Datei befindet. Weitere Informationen finden Sie unter Richtlinienaktionen für Amazon S3 im Amazon Simple Storage Service-Benutzerhandbuch.
Die folgende Beispielrichtlinie fügt die erforderlichen Berechtigungen für das Abrufen einer Datei aus Amazon S3 hinzu. Geben Sie den Namen des Amazon S3-Buckets und den Namen der Konfigurationsdatei an.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "
s3:GetObject
" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
/folder_name
/config_file_name
" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket
" ] } ] }