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.
Secrets Manager Manager-Geheimnisse über Amazon ECS-Umgebungsvariablen weitergeben
Wenn Sie ein Secret als Umgebungsvariable einfügen, können Sie den vollständigen Inhalt eines Secrets, eines bestimmten JSON-Schlüssels innerhalb eines Secrets oder einer bestimmten Version eines einzufügenden Secrets angeben. Das hilft Ihnen, die sensiblen Daten zu steuern, die Ihrem Container zur Verfügung gestellt werden. Weitere Informationen zur geheimen Versionierung finden Sie unter Was ist in einem Secrets Manager Manager-Geheimnis enthalten? im AWS Secrets Manager Benutzerhandbuch.
Folgendes sollte beachtet werden, wenn eine Umgebungsvariable verwendet wird, um ein Secrets Manager Manager-Geheimnis in einen Container einzufügen.
-
Sensible Daten werden beim ersten Start des Containers an diesen übergeben. Wenn das Secret anschließend aktualisiert oder rotiert wird, erhält der Container nicht automatisch den aktualisierten Wert. Sie müssen eine neue Aufgabe starten. Alternativ können Sie, wenn Ihre Aufgabe Teil eines Services ist, den Service aktualisieren und die Option Force new deployment (Neue Bereitstellung erzwingen) auswählen, um den Service zu zwingen, eine neue Aufgabe zu starten.
-
Beachten Sie bei Amazon ECS-Aufgaben Folgendes: AWS Fargate
-
Um den vollständigen Inhalt eines Secrets als Umgebungsvariable oder in eine Protokollkonfiguration einzufügen, müssen Sie die Plattformversion
1.3.0
oder höher verwenden. Weitere Informationen finden Sie unter Fargate-Plattformversionen für Amazon ECS. -
Um einen bestimmten JSON-Schlüssel oder eine Version eines Geheimnisses als Umgebungsvariable oder in eine Protokollkonfiguration einzufügen, müssen Sie die Plattformversion
1.4.0
oder höher (Linux) oder1.0.0
(Windows) verwenden. Weitere Informationen finden Sie unter Fargate-Plattformversionen für Amazon ECS.
-
-
Bei Amazon ECS-Aufgaben sollte Folgendes beachtet werden: EC2
-
Um einen geheimen Schlüssel mithilfe eines bestimmten JSON-Schlüssels oder einer Secret-Version einzufügen, muss Ihre Container-Instance Version
1.37.0
oder höher des Container-Agenten haben. Wir empfehlen jedoch, die neueste Container-Agent-Version zu verwenden. Informationen zum Überprüfen Ihrer Agenten-Version und zum Aktualisieren auf die neueste Version finden Sie unter Überprüfen des Amazon-ECS-Container-Agenten.Um den vollständigen Inhalt eines Secrets als Umgebungsvariable einzufügen oder ein Secret in eine Protokollkonfiguration einzufügen, muss Ihre Container-Instance Version
1.22.0
oder höher des Container-Agenten haben.
-
-
Verwenden Sie VPC-Endpunkte mit Schnittstellen, um die Sicherheitskontrollen zu verbessern, und stellen Sie über ein privates Subnetz eine Verbindung zu Secrets Manager her. Sie müssen die Schnittstellen-VPC-Endpunkte für den Secrets Manager erstellen. Informationen über den VPC-Endpunkt finden Sie unter VPC-Endpunkte erstellen im AWS Secrets Manager -Benutzerhandbuch. Weitere Informationen zur Verwendung von Secrets Manager und Amazon VPC finden Sie unter So stellen Sie eine Verbindung zum Secrets Manager Manager-Service in einer Amazon VPC
her. -
Für Windows-Aufgaben, die für die Verwendung des
awslogs
-Protokolltreibers konfiguriert sind, müssen Sie auch dieECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE
-Umgebungsvariable für die Container-Instance festlegen. Verwenden Sie die folgende Syntax:<powershell> [Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE", $TRUE, "Machine") Initialize-ECSAgent -Cluster <cluster name> -EnableTaskIAMRole -LoggingDrivers '["json-file","awslogs"]' </powershell>
-
Ihre Aufgabendefinition muss eine Aufgabenausführungsrolle mit den zusätzlichen Berechtigungen für Secrets Manager verwenden. Weitere Informationen finden Sie unter IAM-Rolle für die Amazon-ECS-Aufgabenausführung.
Erstellen des AWS Secrets Manager -Geheimnisses
Sie können die Secrets Manager-Konsole verwenden, um ein Secret für Ihre sensiblen Daten zu erstellen. Weitere Informationen finden Sie im AWS Secrets Manager Benutzerhandbuch unter Create an AWS Secrets Manager Secret.
Fügen Sie die Umgebungsvariable zur Container-Definition hinzu
Innerhalb der Containerdefinition können Sie Folgendes angeben:
-
Das
secrets
-Objekt, das den Namen der Umgebungsvariablen enthält, die im Container festgelegt werden soll -
Der Amazon-Ressourcenname (ARN) des Secrets Manager-Secrets
-
Zusätzliche Parameter, die die sensiblen Daten enthalten, die dem Container angezeigt werden sollen
Das folgende Beispiel zeigt die vollständige Syntax, die für das Secrets Manager-Secret angegeben werden muss.
arn:aws:secretsmanager:
region
:aws_account_id
:secret:secret-name
:json-key
:version-stage
:version-id
Im folgenden Abschnitt werden die zusätzlichen Parameter beschrieben. Diese Parameter sind optional, aber wenn Sie sie nicht verwenden, müssen Sie die Doppelpunkte einschließen, damit :
die Standardwerte verwendet. Beispiele finden Sie unten für weiteren Kontext.
json-key
-
Gibt den Namen des Schlüssels in einem Schlüssel-Wert-Paar mit dem Wert an, den Sie als Umgebungsvariablenwert festlegen möchten. Nur Werte im JSON-Format werden unterstützt. Wenn Sie keinen JSON-Schlüssel angeben, wird der vollständige Inhalt des Secrets verwendet.
version-stage
-
Gibt die Phasenbeschriftung der Version eines Secrets an, die Sie verwenden möchten. Wenn eine Versionsphasenbeschriftung angegeben ist, können Sie keine Versions-ID angeben. Wenn keine Versionsphase angegeben wird, besteht das Standardverhalten darin, das Secret Schlüssel mit der
AWSCURRENT
-Phasenbeschriftung abzurufen.Phasenbeschriftungen werden verwendet, um verschiedene Versionen eines Secrets zu verfolgen, wenn sie aktualisiert oder rotiert werden. Jede Version eines Secrets hat eine oder mehrere Phasenbeschriftungen und eine ID. Weitere Informationen erhalten Sie unter Zentrale Begriffe und Konzepte für AWS Secrets Manager im AWS Secrets Manager -Benutzerhandbuch.
version-id
-
Gibt die eindeutige ID der Version des Secrets an, die Sie verwenden möchten. Wenn eine Versions-ID angegeben wird, können Sie keine Versionsphasenbeschriftung angeben. Wenn keine Versions-ID angegeben wird, besteht das Standardverhalten darin, den geheimen Schlüssel mit der
AWSCURRENT
-Phasenbeschriftung abzurufen.Versionen IDs werden verwendet, um den Überblick über verschiedene Versionen eines Geheimnisses zu behalten, wenn sie entweder aktualisiert oder ausgetauscht werden. Jede Version eines Secrets hat eine ID. Weitere Informationen erhalten Sie unter Zentrale Begriffe und Konzepte für AWS Secrets Manager im AWS Secrets Manager -Benutzerhandbuch.
Beispiel-Containerdefinitionen
Die folgenden Beispiele zeigen, wie Sie auf Secrets Manager-Secrets in Ihren Containerdefinitionen verweisen können.
Beispiel Verweisen auf ein vollständiges Secret
Im Folgenden finden Sie einen Ausschnitt einer Aufgabendefinition mit dem Format beim Verweisen auf den vollständigen Text eines Secrets Manager-Secret.
{ "containerDefinitions": [{ "secrets": [{ "name": "
environment_variable_name
", "valueFrom": "arn:aws:secretsmanager:region
:aws_account_id
:secret:secret_name-AbCdEf
" }] }] }
Um innerhalb des Containers auf den Wert dieses Geheimnisses zuzugreifen, müssten Sie den $environment_variable_name
aufrufen.
Beispiel Verweisen auf einen bestimmten Schlüssel innerhalb eines Secrets
Im Folgenden wird ein Beispiel für die Ausgabe eines get-secret-valueBefehls gezeigt, der den Inhalt eines Secrets zusammen mit der zugehörigen Staging-Bezeichnung der Version und der zugehörigen Versions-ID anzeigt.
{ "ARN": "arn:aws:secretsmanager:
region
:aws_account_id
:secret:appauthexample-AbCdEf
", "Name": "appauthexample
", "VersionId": "871d9eca-18aa-46a9-8785-981ddEXAMPLE
", "SecretString": "{\"username1
\":\"password1
\",\"username2
\":\"password2
\",\"username3
\":\"password3
\"}", "VersionStages": [ "AWSCURRENT
" ], "CreatedDate": 1581968848.921 }
Verweisen Sie auf einen bestimmten Schlüssel aus der vorherigen Ausgabe in einer Containerdefinition, indem Sie den Schlüsselnamen am Ende des ARN angeben.
{ "containerDefinitions": [{ "secrets": [{ "name": "
environment_variable_name
", "valueFrom": "arn:aws:secretsmanager:region
:aws_account_id
:secret:appauthexample-AbCdEf
:username1
::" }] }] }
Beispiel Verweisen auf eine bestimmte Secret-Version
Im Folgenden wird eine Beispielausgabe eines describe-secret -Befehls gezeigt, der den unverschlüsselten Inhalt eines Secrets zusammen mit den Metadaten für alle Versionen des Secrets anzeigt.
{ "ARN": "arn:aws:secretsmanager:
region
:aws_account_id
:secret:appauthexample-AbCdEf
", "Name": "appauthexample
", "Description": "Example of a secret containing application authorization data.", "RotationEnabled": false, "LastChangedDate": 1581968848.926, "LastAccessedDate": 1581897600.0, "Tags": [], "VersionIdsToStages": { "871d9eca-18aa-46a9-8785-981ddEXAMPLE
": [ "AWSCURRENT
" ], "9d4cb84b-ad69-40c0-a0ab-cead3EXAMPLE
": [ "AWSPREVIOUS
" ] } }
Verweisen Sie auf eine bestimmte Versionsphasenbeschriftung aus der vorherigen Ausgabe in einer Containerdefinition, indem Sie den Schlüsselnamen am Ende des ARN angeben.
{ "containerDefinitions": [{ "secrets": [{ "name": "
environment_variable_name
", "valueFrom": "arn:aws:secretsmanager:region
:aws_account_id
:secret:appauthexample-AbCdEf
::AWSPREVIOUS
:" }] }] }
Verweisen Sie auf eine bestimmte Versions-ID der vorherigen Ausgabe in einer Containerdefinition, indem Sie den Schlüsselnamen am Ende des ARN angeben.
{ "containerDefinitions": [{ "secrets": [{ "name": "
environment_variable_name
", "valueFrom": "arn:aws:secretsmanager:region
:aws_account_id
:secret:appauthexample-AbCdEf
:::9d4cb84b-ad69-40c0-a0ab-cead3EXAMPLE
" }] }] }
Beispiel Verweisen auf einen bestimmten Schlüssel und eine Versionsphasenbeschriftung eines Secrets
Im Folgenden wird gezeigt, wie Sie sowohl auf einen bestimmten Schlüssel innerhalb eines Secrets als auch auf eine bestimmte Versionsphasenbeschriftung verweisen.
{ "containerDefinitions": [{ "secrets": [{ "name": "
environment_variable_name
", "valueFrom": "arn:aws:secretsmanager:region
:aws_account_id
:secret:appauthexample-AbCdEf
:username1
:AWSPREVIOUS
:" }] }] }
Verwenden Sie die folgende Syntax, um einen bestimmten Schlüssel und eine Versions-ID anzugeben.
{ "containerDefinitions": [{ "secrets": [{ "name": "
environment_variable_name
", "valueFrom": "arn:aws:secretsmanager:region
:aws_account_id
:secret:appauthexample-AbCdEf
:username1
::9d4cb84b-ad69-40c0-a0ab-cead3EXAMPLE
" }] }] }
Hinweise zum Erstellen einer Aufgabendefinition mit dem in einer Umgebungsvariablen angegebenen geheimen Schlüssel finden Sie unterErstellen einer Amazon ECS-Aufgabendefinition mithilfe der Konsole.