Bewährte Methoden für die Verwaltung von Geheimnissen in Amazon ECS - 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.

Bewährte Methoden für die Verwaltung von Geheimnissen in Amazon ECS

Secrets, wie API-Schlüssel und Datenbankanmeldeinformationen, werden häufig von Anwendungen verwendet, um auf andere Systeme zuzugreifen. Sie bestehen häufig aus einem Benutzernamen und einem Passwort, einem Zertifikat oder einem API-Schlüssel. Der Zugriff auf diese Secrets sollte auf bestimmte IAM-Prinzipale beschränkt werden, die IAM verwenden und zur Laufzeit in Container eingespeist werden.

Secrets können nahtlos aus AWS Secrets Manager einem Amazon EC2 Systems Manager Parameter Store in Container eingefügt werden. Auf diese Secrets kann in Ihrer Aufgabe wie folgt verwiesen werden.

  1. Sie werden als Umgebungsvariablen referenziert, die den secrets-Container-Definitionsparameter verwenden.

  2. Sie werden als secretOptions bezeichnet, wenn Ihre Protokollierungsplattform eine Authentifizierung erfordert. Weitere Informationen finden Sie unter Konfigurationsoptionen für die Protokollierung.

  3. Sie werden als Secrets bezeichnet, die von Images abgerufen werden, die den repositoryCredentials-Container-Definitionsparameter verwenden, wenn die Registrierung, aus der der Container abgerufen wird, eine Authentifizierung erfordert. Verwenden Sie diese Methode, wenn Sie Images aus Amazon ECR Public Gallery abrufen. Weitere Informationen finden Sie unter Private Registrierungsauthentifizierung für Aufgaben.

Empfehlungen zu Geheimnissen

Wir empfehlen Ihnen, bei der Einrichtung der Verwaltung von Secrets wie folgt vorzugehen.

Verwenden Sie AWS Secrets Manager unseren Amazon EC2 Systems Manager Parameter Store zum Speichern geheimer Materialien

Sie sollten API-Schlüssel, Datenbankanmeldedaten und andere geheime Materialien sicher in AWS Secrets Manager oder als verschlüsselte Parameter im Amazon EC2 Systems Manager Parameter Store speichern. Diese Dienste ähneln sich, da es sich bei beiden um verwaltete Schlüsselwertspeicher handelt, die AWS KMS zur Verschlüsselung sensibler Daten verwendet werden. AWS Secrets Manager beinhaltet jedoch auch die Möglichkeit, Geheimnisse automatisch zu rotieren, zufällige Geheimnisse zu generieren und Geheimnisse zwischen Konten auszutauschen. AWS Wenn Sie diese Features als wichtig einstufen, verwenden Sie AWS Secrets Manager , ansonsten verwenden Sie verschlüsselte Parameter.

Anmerkung

Aufgaben, die auf ein Geheimnis aus AWS Secrets Manager oder dem Amazon EC2 Systems Manager Parameter Store verweisen, erfordern eine Aufgabenausführungsrolle mit einer Richtlinie, die Amazon ECS Zugriff auf das gewünschte Geheimnis und, falls zutreffend, auf den AWS KMS Schlüssel gewährt, der zum Verschlüsseln und Entschlüsseln dieses Geheimnisses verwendet wird.

Wichtig

Secrets, auf die in Aufgaben verwiesen wird, werden nicht automatisch rotiert. Wenn sich Ihr Secret ändert, müssen Sie eine neue Bereitstellung erzwingen oder eine neue Aufgabe starten, um den neuesten Secret-Wert abzurufen. Weitere Informationen finden Sie unter den folgenden Themen:

Daten aus einem verschlüsselten Amazon S3 S3-Bucket abrufen

Da der Wert von Umgebungsvariablen versehentlich in Protokollen nach außen dringen kann und bei der Ausführung von docker inspect aufgedeckt wird, sollten Sie Secrets in einem verschlüsselten Amazon-S3-Bucket speichern und Aufgabenrollen verwenden, um den Zugriff auf diese Secrets zu beschränken. Wenn Sie dies tun, muss Ihre Anwendung so geschrieben werden, dass sie das Secret aus dem Amazon-S3-Bucket liest. Anweisungen dazu finden Sie unter Festlegen des standardmäßigen serverseitigen Verschlüsselungsverhaltens für Amazon-S3-Buckets.

Das Secret mit Hilfe eines Beiwagen-Containers in ein Volume mounten

Da bei Umgebungsvariablen ein erhöhtes Risiko von Datenlecks besteht, sollten Sie einen Sidecar-Container verwenden, der Ihre Secrets ausliest AWS Secrets Manager und auf ein gemeinsam genutztes Volume schreibt. Dieser Container kann vor dem Anwendungscontainer ausgeführt und beendet werden, indem Sie Amazon-ECS-Container-Anordnungen verwenden. Wenn Sie dies tun, mountet der Anwendungscontainer anschließend das Volume, auf dem das Secret geschrieben wurde. Wie bei der Amazon-S3-Bucket-Methode muss Ihre Anwendung so geschrieben werden, dass sie das Secret aus dem gemeinsam genutzten Volume liest. Da das Volume auf die Aufgabe beschränkt ist, wird das Volume nach dem Beenden der Aufgabe automatisch gelöscht. Ein Beispiel für einen Beiwagen-Container finden Sie im Projekt aws-secret-sidecar-injector.

Anmerkung

In Amazon EC2 kann das Volume, auf welches das Secret geschrieben wird, mit einem vom Kunden verwalteten AWS KMS -Schlüssel verschlüsselt werden. Bei aktivierter AWS Fargate Option wird der Datenträgerspeicher automatisch mithilfe eines vom Service verwalteten Schlüssels verschlüsselt.

Weitere Ressourcen