Secrets Manager Manager-Geheimnisse über ECS Amazon-Umgebungsvariablen abrufen - 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.

Secrets Manager Manager-Geheimnisse über ECS Amazon-Umgebungsvariablen abrufen

Wenn Sie ein Geheimnis als Umgebungsvariable einfügen, können Sie den vollständigen Inhalt eines Geheimnisses, einen bestimmten JSON Schlüssel innerhalb eines Geheimnisses oder eine bestimmte Version eines Geheimnisses angeben, das eingefügt werden soll. Das hilft Ihnen, die sensiblen Daten zu steuern, die Ihrem Container zur Verfügung gestellt werden. Weitere Informationen zur geheimen Versionsverwaltung finden Sie unter Schlüsselbegriffe und -konzepte für AWS Secrets Manager 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 ECS Amazon-Aufgaben unter AWS Fargate Folgendes:

    • 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 bestimmte Version eines Geheimnisses als Umgebungsvariable oder in eine Protokollkonfiguration einzufügen, müssen Sie die Plattformversion 1.4.0 oder höher (Linux) oder 1.0.0 (Windows) verwenden. Weitere Informationen finden Sie unter Fargate-Plattformversionen für Amazon ECS.

  • Für ECS Amazon-Aufgaben an EC2 sollte Folgendes beachtet werden:

    • Um ein Geheimnis mithilfe eines bestimmten JSON Schlüssels oder einer bestimmten Version eines Geheimnisses einzuschleusen, muss Ihre Container-Instance über eine Version 1.37.0 oder eine neuere Version des Container-Agenten verfügen. 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 Den ECS Amazon-Container-Agenten aktualisieren.

      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 Schnittstellenendpunkte, um die Sicherheitskontrollen zu verbessern, und stellen Sie über ein privates Subnetz eine Verbindung zu Secrets Manager her. Sie müssen die VPC Schnittstellenendpunkte für Secrets Manager erstellen. Informationen zum VPC Endpunkt finden Sie unter VPCEndpunkte 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 einem Amazon herVPC.

  • Für Windows-Aufgaben, die für die Verwendung des awslogs-Protokolltreibers konfiguriert sind, müssen Sie auch die ECS_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 Rolle bei der Ausführung von ECS IAM Amazon-Aufgaben.

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 Manager-Geheimnisses

  • 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. Es werden nur Werte im JSON Format unterstützt. Wenn Sie keinen JSON Schlüssel angeben, wird der vollständige Inhalt des Geheimnisses 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 in einer Containerdefinition auf einen bestimmten Schlüssel aus der vorherigen Ausgabe, indem Sie den Schlüsselnamen am Ende von angeben. ARN

{ "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 in einer Containerdefinition auf ein bestimmtes Versions-Staging-Label aus der vorherigen Ausgabe, indem Sie den Schlüsselnamen am Ende von angeben. ARN

{ "containerDefinitions": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf::AWSPREVIOUS:" }] }] }

Verweisen Sie in einer Containerdefinition auf eine bestimmte Versions-ID aus der vorherigen Ausgabe, indem Sie den Schlüsselnamen am Ende von angeben. ARN

{ "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 ECS Amazon-Aufgabendefinition mithilfe der Konsole.