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
Diese Berechtigungen werden dem Agenten, der auf Ihrer Instance ausgeführt wird, von Amazon ECS zur Verfügung gestellt, indem ihm regelmäßig die temporären Anmeldeinformationen der Rolle gesendet werden. Die Container in der Aufgabe können jedoch nicht direkt auf sie zugreifen. Informationen zu den IAM-Berechtigungen, die Ihre Anwendungscode in den Containern zur Ausführung benötigt, finden Sie unter Aufgaben-IAM-Rolle für Amazon ECS.
Im Folgenden finden Sie häufig Anwendungsfälle für eine IAM-Rolle zur Aufgabenausführung:
-
Ihre Aufgabe wird auf AWS FargateAmazon ECS Managed Instances oder einer externen Instance gehostet und:
-
ruft ein Container-Image aus einem privaten Amazon ECR-Repository ab.
-
ruft ein Container-Image aus einem privaten Amazon-ECR-Repository ab, das sich in einem anderen Konto befindet als das Konto, das die Aufgabe ausführt.
-
sendet CloudWatch Container-Protokolle mithilfe des Protokolltreibers an
awslogsLogs. 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:
-
benutzen Private-Registry-Authentifizierung. Weitere Informationen finden Sie unter Private-Registry-Authentifizierungsberechtigungen.
-
benutzt Runtime Monitoring.
-
die Aufgabendefinition verweist auf sensible Daten mithilfe von Secrets-Manager-Geheimnissen oder Parametern von AWS Systems Manager Parameter Store. Weitere Informationen finden Sie unter Berechtigungen für Secrets Manager oder Systems Manager.
-
Anmerkung
Die Aufgabenausführungsrolle wird von Amazon-ECS-Container-Agent Version 1.16.0 und höher unterstützt.
Amazon ECS bietet die verwaltete Richtlinie AmazonECSTaskExecutionRolePolicy. Diese enthält die Berechtigungen, die für die oben beschriebenen häufigen Anwendungsfälle benötigt werden. Weitere Informationen finden Sie unter Amazon ECSTask ExecutionRolePolicy im AWS Managed Policy Reference Guide. Es kann erforderlich sein, für spezielle Anwendungsfälle, Inline-Richtlinien zu Ihrer Aufgabenausführungsrolle hinzuzufügen.
Die Amazon-ECS-Konsole erstellt eine Aufgabenausführungsrolle. Sie können jedoch die verwaltete IAM-Richtlinie für Aufgaben manuell anfügen, damit Amazon ECS Berechtigungen für zukünftige Features und Erweiterungen bei deren Einführung hinzufügen kann. Sie können die IAM-Konsole verwenden, um nach ecsTaskExecutionRole zu suchen und festzustellen, ob Ihr Konto bereits über die Aufgabenausführungsrolle verfügt. Weitere Informationen finden Sie unter IAM-Konsolensuche im IAM-Benutzerhandbuch.
Wenn Sie Images als authentifizierter Benutzer abrufen, ist es weniger wahrscheinlich, dass Sie von den Änderungen an den Docker Hub-Nutzungsbeschränkungen
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 Aufgabenausführungsrolle verfügt, führen Sie die folgenden Schritte aus, um die Rolle zu erstellen.
Nachdem Sie die Rolle erstellt haben, fügen Sie der Rolle zusätzliche Berechtigungen für die folgenden Features hinzu.
| Feature | 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 |
|
| Sensible Daten mit Systems Manager oder Secrets Manager übergeben | |
| Fargate-Aufgaben zum Abrufen von Amazon-ECR-Images über Schnittstellen-Endpunkte | Berechtigungen für Fargate-Aufgaben, Amazon-ECR-Images über Schnittstellen-Endpunkte abzurufen |
| Host-Konfigurationsdateien in einem Amazon-S3-Bucket | |
| Container Insights zur Anzeige von Amazon-ECS-Lebenszyklusereignissen konfigurieren | |
| Amazon-ECS-Lebenszyklusereignissen in Container Insights anzeigen |
Private-Registry-Authentifizierungsberechtigungen
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. Dieses Feature verwendet Secrets Manager, um Ihre Registry-Anmeldeinformationen 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 Registry-Anmeldeinformationen enthalten, fügen Sie die folgenden Berechtigungen als Inline-Richtlinie zur Aufgaben-Ausführungsrolle hinzu. Weitere Informationen finden Sie unter Hinzufügen und Entfernen von IAM-Richtlinien.
-
secretsmanager:GetSecretValue– Erforderlich, um die privaten Registry-Anmeldeinformationen 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:
Berechtigungen für Secrets Manager oder Systems Manager
Die Erlaubnis, dem Container-Agenten zu erlauben, die erforderlichen AWS Systems Manager oder Secrets Manager Manager-Ressourcen abzurufen. Weitere Informationen finden Sie unter Sensible Daten an einen Amazon-ECS-Container übergeben.
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.
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:
Berechtigungen für Fargate-Aufgaben, Amazon-ECR-Images über Schnittstellen-Endpunkte abzurufen
Beim Starten von Aufgaben, die 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:
Amazon-ECR-Berechtigungen
Die folgenden Berechtigungen sind erforderlich, wenn Sie Container-Images aus privaten Amazon-ECR-Repositorys abrufen müssen. Die Aufgabenausführungsrolle sollte über diese Berechtigungen verfügen, damit die Amazon-ECS-Container und 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ührungsrolle enthält die erforderlichen Berechtigungen zum Abrufen von Images 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 Images aus Amazon ECR zu ermöglichen:
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. Weitere Informationen über Berechtigungen für eine Aufgaben-IAM-Rolle für Amazon ECR finden Sie unter Amazon-ECR-Berechtigungen.
Berechtigungen für Amazon-S3-Dateispeicher
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-Bucket enthalten, in dem sich die Datei befindet. Weitere Informationen finden Sie unter Richtlinienaktionen für Amazon S3 im Benutzerhandbuch für Amazon Simple Storage Service.
Die folgende Beispielrichtlinie fügt die erforderlichen Berechtigungen zum Abrufen einer Datei aus Amazon S3 hinzu. Geben Sie den Namen des Amazon S3-Buckets und den Namen der Konfigurationsdatei an.
Wichtiger Sicherheitsaspekt
Wenn Sie Amazon ECS-Funktionen verwenden, die in Amazon S3 S3-Buckets integriert sind, implementieren Sie eine Bucket-Besitzvalidierung, um Bucket-Takeover-Attacken zu verhindern. Wenn ein Amazon S3 S3-Bucket ohne ordnungsgemäße Überprüfung von einem böswilligen Akteur mit demselben Namen gelöscht und neu erstellt wird, laden Ihre Aufgaben möglicherweise unwissentlich bösartige Konfigurationen oder senden vertrauliche Daten an von Angreifern kontrollierte Buckets.
Empfohlene Bedingung für die IAM-Richtlinie:
"Condition": {
"StringEquals": {
"aws:ResourceAccount": "TRUSTED-ACCOUNT-ID"
}
}
TRUSTED-ACCOUNT-IDErsetzen Sie es durch die AWS Konto-ID, der der S3-Bucket gehört.
Diese Bedingung stellt sicher, dass Ihre Aufgabenausführungsrolle nur auf Amazon S3 S3-Buckets zugreifen kann, die dem angegebenen vertrauenswürdigen Konto gehören.