View a markdown version of this page

Geheimnisse und Parameter in die Elastic Beanstalk-Umgebungsvariablen werden abgerufen - AWS Elastic Beanstalk

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.

Geheimnisse und Parameter in die Elastic Beanstalk-Umgebungsvariablen werden abgerufen

Elastic Beanstalk kann während des Instanz-Bootstrappings Werte aus AWS Secrets Manager einem AWS Systems Manager Parameterspeicher abrufen und sie Umgebungsvariablen zuweisen, die Ihre Anwendung verwenden kann.

Die folgenden Punkte fassen Konfiguration, Synchronisation und Zugriff für die Verwendung von Umgebungsvariablen als Geheimnisse zusammen:

  • Konfigurieren Sie Ihre Umgebungsvariablen zum Speichern von Geheimnissen, indem Sie die Amazon-Ressourcennamen (ARNs) für die Geheimnisse und Parameter angeben, die gespeichert werden sollen.

  • Wenn geheime Werte in Secrets Manager oder Systems Manager Parameter Store aktualisiert oder rotiert werden, müssen Sie Ihre Umgebungsvariablen manuell aktualisieren.

  • Die Secrets-Umgebungsvariablen sind für Konfigurationsdateien Ebextension-Container-Befehle und Plattform-Hooks verfügbar.

Unterstützte Plattformversionen

Plattformversionen, die am oder nach dem 26. März 2025 veröffentlicht wurden, unterstützen AWS Secrets Manager Secrets und AWS Systems Manager Parameter Store-Parameter, die als Umgebungsvariablen konfiguriert sind.

Anmerkung

Mit Ausnahme der Docker- und ECS-basierten Docker-Plattformen unterstützen die Versionen der Amazon Linux 2-Plattform keine mehrzeiligen Variablenwerte. Weitere Informationen zur Unterstützung mehrzeiliger Variablen finden Sie unter. Mehrzeilige Werte

Preisgestaltung

Für die Verwendung von Secrets Manager und Systems Manager Parameter Store fallen Standardgebühren an. Weitere Informationen zur Preisgestaltung finden Sie auf den folgenden Websites:

Elastic Beanstalk berechnet für Ihre Anwendung keine Gebühren, wenn sie über Umgebungsvariablen auf Umgebungsgeheimnisse verweist. Für Anfragen, die Elastic Beanstalk in Ihrem Namen an diese Dienste stellt, fallen jedoch Standardgebühren an.

Konfigurieren Sie Geheimnisse als Elastic Beanstalk-Umgebungsvariablen

Sie können die Elastic Beanstalk-Konsole, die Konfigurationsdateien in.ebextensions, die AWS CLI und das AWS SDK verwenden, um Geheimnisse und Parameter als Umgebungsvariablen zu konfigurieren.

Voraussetzungen

Bevor Sie Ihre Umgebungsvariablen so einrichten können, dass sie auf Geheimnisse verweisen, müssen Sie zunächst die folgenden Schritte ausführen.

Allgemeines Verfahren vor der Konfiguration der Umgebungsvariablen
  1. Erstellen Sie die Secrets Manager-Geheimnisse oder die Parameter Store-Parameter, um Ihre vertraulichen Daten zu speichern. Weitere Informationen finden Sie in einem oder beiden der folgenden Themen:

  2. Richten Sie die erforderlichen IAM-Berechtigungen für die EC2-Instances Ihrer Umgebung ein, um die Geheimnisse und Parameter abzurufen. Weitere Informationen finden Sie unter Erforderliche IAM-Berechtigungen.

Verwenden der Konsole

Sie können die Elastic Beanstalk-Konsole verwenden, um Secrets als Umgebungsvariablen zu konfigurieren.

Um Geheimnisse als Umgebungsvariablen in der Elastic Beanstalk-Konsole zu konfigurieren
  1. Öffnen Sie die Elastic Beanstalk-Konsole und wählen Sie in der Liste der Regionen Ihre aus. AWS-Region

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Updates, monitoring and logging  (Updates, Überwachung und Protokolle) die Option Edit (Bearbeiten) aus.

  5. Scrollen Sie nach unten zu Runtime-Umgebungsvariablen.

  6. Wählen Sie Umgebungsvariable hinzufügen aus.

  7. Wählen Sie als Quelle entweder Secrets Manager oder SSM Parameter Store aus.

    Anmerkung

    Weitere Informationen zur Option Klartext in der Dropdownliste finden Sie unterKonfiguration von Umgebungseigenschaften (Umgebungsvariablen).

  8. Geben Sie für den Namen der Umgebungsvariablen den Namen der Umgebungsvariablen ein, die das Geheimnis oder den Parameterwert enthalten soll.

  9. Geben Sie für den Wert der Umgebungsvariablen den ARN des Systems Manager-Parameterspeicher-Parameters oder den Secrets Manager-Schlüssel ein. Während des Instance-Bootstrappings setzt Elastic Beanstalk den Wert der Variablen, den Sie in Schritt 8 eingegeben haben, auf den in dieser ARN-Ressource gespeicherten Wert um.

    Die Konsole überprüft, ob der von Ihnen eingegebene Wert ein gültiges ARN-Format für den Store ist, den Sie in Schritt 7 ausgewählt haben. Sie überprüft jedoch nicht, ob die im ARN angegebene Ressource vorhanden ist oder ob Sie über die erforderlichen IAM-Berechtigungen für den Zugriff darauf verfügen.

  10. Wenn Sie weitere Variablen hinzufügen müssen, wiederholen Sie Schritt 6 bis Schritt 9.

  11. Wählen Sie unten auf der Seite die Option Apply (Anwenden) aus, um die Änderungen zu speichern.

Konfiguration mithilfe von Dateien in der Erweiterung.ebextensions

Sie können Elastic Beanstalk-Konfigurationsdateien verwenden, um Geheimnisse als Umgebungsvariablen zu konfigurieren. Verwenden Sie den aws: elasticbeanstalk: Anwendung: Umgebungsgeheimnisse Namespace, um Umgebungseigenschaften zu definieren.

Anmerkung

Secrets Manager hängt automatisch 6 zufällige Zeichen an geheime Namen im ARN-Format an, um die Eindeutigkeit sicherzustellen.

Beispiel. ebextensions/options.config für Umgebungsgeheimnisse (Kurzsyntax)
option_settings: aws:elasticbeanstalk:application:environmentsecrets: MY_SECRET: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12 MY_PARAMETER: arn:aws:ssm:us-east-1:111122223333:parameter/myparam
Beispiel. ebextensions/options.config für Umgebungsgeheimnisse (Standardsyntax)
option_settings: - namespace: aws:elasticbeanstalk:application:environmentsecrets option_name: MY_SECRET value: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12 - namespace: aws:elasticbeanstalk:application:environmentsecrets option_name: MY_PARAMETER value: arn:aws:ssm:us-east-1:111122223333:parameter/myparam

Konfiguration mit dem AWS CLI

Sie können die AWS Befehlszeilenschnittstelle (AWS CLI) verwenden, um Geheimnisse als Elastic Beanstalk-Umgebungsvariablen zu konfigurieren. Dieser Abschnitt enthält Beispiele für die Befehle create-environment und https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/update-environment.html update-environment mit dem Namespace. aws: elasticbeanstalk: Anwendung: Umgebungsgeheimnisse Wenn Elastic Beanstalk die EC2-Instances für die Umgebungen, auf die diese Befehle verweisen, bootet, initialisiert es die Umgebungsvariablen mit dem abgerufenen Schlüssel und den Parameterwerten. Es ruft diese Werte aus den jeweiligen ARNs von Secrets Manager und Systems Manager Parameter Store ab.

In den beiden folgenden Beispielen wird der Befehl create-environment verwendet, um ein Geheimnis und einen Parameter hinzuzufügen, die als Umgebungsvariablen mit dem Namen und konfiguriert sind. MY_SECRET MY_PARAMETER

Beispiel von create-environment mit Geheimnissen, die als Umgebungsvariablen konfiguriert sind (Inline-Namespace-Optionen)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --platform-arn "arn:aws:elasticbeanstalk:::platform/Node.js 24 running on 64bit Amazon Linux 2023" \ --option-settings \ Namespace=aws:autoscaling:launchconfiguration,OptionName=IamInstanceProfile,Value=aws-elasticbeanstalk-ec2-role \ Namespace=aws:elasticbeanstalk:application:environmentsecrets,OptionName=MY_SECRET,Value=arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12 \ Namespace=aws:elasticbeanstalk:application:environmentsecrets,OptionName=MY_PARAMETER,Value=arn:aws:ssm:us-east-1:111122223333:parameter/myparam

Verwenden Sie alternativ eineoptions.json-Datei, um die Namespace-Optionen anzugeben, anstatt sie einzubinden.

Beispiel von create-environment mit Geheimnissen, die als Umgebungsvariablen konfiguriert sind (Namespace-Optionen in options.json datei)
aws elasticbeanstalk create-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --platform-arn "arn:aws:elasticbeanstalk:::platform/Node.js 24 running on 64bit Amazon Linux 2023" \ --option-settings file://options.json
Beispiel
### example options.json ### [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": "aws-elasticbeanstalk-ec2-role" }, { "Namespace": "aws:elasticbeanstalk:application:environmentsecrets", "OptionName": "MY_SECRET", "Value": "arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12" }, { "Namespace": "aws:elasticbeanstalk:application:environmentsecrets", "OptionName": "MY_PARAMETER", "Value": "arn:aws:ssm:us-east-1:111122223333:parameter/myparam" } ]

Im nächsten Beispiel werden die Umgebungsvariablen mit dem Namen MY_SECRET und konfiguriertMY_PARAMETER, um ein Geheimnis und einen Parameter für eine bestehende Umgebung zu speichern. Der Befehl update-environment übergibt Optionen mit derselben Syntax wie der create-environment Befehl, entweder direkt oder in einer Datei. options.json Im folgenden Beispiel wird der Befehl unter Verwendung derselben options.json Datei veranschaulicht, die auch im vorherigen Beispiel verwendet wurde.

Beispiel von update-environment mit Geheimnissen, die als Umgebungsvariablen konfiguriert sind (Namespace-Optionen in options.json datei)
aws elasticbeanstalk update-environment \ --region us-east-1 \ --application-name my-app \ --environment-name my-env \ --platform-arn "arn:aws:elasticbeanstalk:::platform/Node.js 24 running on 64bit Amazon Linux 2023" \ --option-settings file://options.json

Konfiguration mit dem AWS SDK

Mithilfe der AWS SDKs können Sie Geheimnisse und Parameter als Umgebungsvariablen konfigurieren. Ähnlich wie bei den im vorherigen Abschnitt erwähnten create-environment AWS CLI Befehlen update-environment und können Sie die UpdateEnvironment API-Aktionen CreateEnvironment und verwenden. Verwenden Sie den OptionSettings Anforderungsparameter, um die Optionen des aws: elasticbeanstalk: Anwendung: Umgebungsgeheimnisse Namespaces anzugeben.

Extrahieren von JSON-Schlüsseln aus Secrets Manager-Secrets

Plattformversionen, die am oder nach dem 13. Januar 2026 veröffentlicht wurden, unterstützen das Extrahieren bestimmter Felder aus JSON-formatted Secrets Manager-Geheimnissen, indem ein Doppelpunkt und der JSON-Schlüsselname an den geheimen ARN angehängt werden. Auf diese Weise können Sie auf einzelne Schlüssel-Wert-Paare innerhalb eines Geheimnisses und nicht auf das gesamte Geheimnis verweisen.

Syntax

Um einen bestimmten JSON-Schlüssel aus einem Geheimnis zu extrahieren, fügen Sie Folgendes :json-key-name an den geheimen ARN an:

arn:aws:secretsmanager:region:account:secret:secret-name-XXXXXX:json-key-name

Die JSON-Schlüsselextraktion kann mit den gleichen Methoden wie reguläre Umgebungsgeheimnisse konfiguriert werden: Konsole, Konfigurationsdateien in.ebextensions, AWS CLI oder AWS SDKs.

Einschränkungen

  • Die JSON-Schlüsselextraktion wird nur für Secrets Manager-Geheimnisse unterstützt, nicht für Systems Manager-Parameter Store-Parameter.

  • Nur JSON-Schlüssel der obersten Ebene werden unterstützt. Der Zugriff auf verschachtelte Schlüssel (z. B.config.database.host) und die Array-Indizierung (z. B.servers[0]) werden nicht unterstützt. Wenn Sie auf verschachtelte Werte zugreifen müssen, extrahieren Sie das übergeordnete Objekt und analysieren Sie es in Ihrem Anwendungscode. Verschachtelte Objekte und Arrays, auf die mit dem Schlüssel der obersten Ebene zugegriffen wird, werden wieder in das JSON-Format serialisiert.

  • JSON-Schlüsselnamen dürfen keine Doppelpunkte () enthalten. : Doppelpunkte sind in der ARN-Syntax als Trennzeichen reserviert. Wenn ein JSON-Schlüsselname einen Doppelpunkt enthält, wird nur der Teil vor dem ersten Doppelpunkt als Schlüsselname verwendet, und alle Zeichen nach dem Doppelpunkt werden ignoriert.

  • Die von ECS verwaltete Docker-Plattform verwendet die native ECS-Syntax für die Referenzierung von Geheimnissen. Weitere Informationen finden Sie im Amazon Elastic Container Service Developer Guide unter Weitergabe von Secrets Manager-Geheimnissen über Amazon ECS-Umgebungsvariablen.

Beispiel

Das folgende Beispiel zeigt, wie verschiedene Werttypen aus einem JSON-Geheimnis extrahiert werden. Angesichts dieses Geheimnisses:

{ "stringKey": "value1", "numberKey": 42, "objectKey": { "nested": "data" }, "arrayKey": ["item1", "item2"] }

Sie können die Extraktion konfigurieren in.ebextensions:

Beispiel.ebextensions-Beispiel mit JSON-Schlüsselextraktion
option_settings: aws:elasticbeanstalk:application:environmentsecrets: STRING_VAR: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12:stringKey NUMBER_VAR: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12:numberKey OBJECT_VAR: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12:objectKey ARRAY_VAR: arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12:arrayKey

Dies führt zu den folgenden Umgebungsvariablen:

  • STRING_VAR=value1

  • NUMBER_VAR=42

  • OBJECT_VAR={"nested":"data"}

  • ARRAY_VAR=["item1","item2"]

Bewährte Methoden für die Synchronisation von Geheimnissen mit Elastic Beanstalk-Umgebungsvariablen

In diesem Thema werden bewährte Methoden für Ihre Anwendung zur Verwendung von Umgebungsgeheimnissen mit Secrets Manager oder dem Systems Manager Parameter Store empfohlen. Ihre Elastic Beanstalk-Anwendung erhält nicht automatisch aktualisierte Werte, wenn die Secret-Store-Daten aktualisiert oder rotiert werden. Elastic Beanstalk zieht zum Zeitpunkt des Instanz-Bootstrappings nur Geheimnisse in die Umgebungsvariablen.

Aktualisieren Sie Ihre Umgebungsvariablen

Damit Ihre Elastic Beanstalk-Umgebung die neuesten Werte der Secrets aus ihren geheimen Speichern erneut abruft, empfehlen wir, entweder den Vorgang oder auszuführen. UpdateEnvironment RestartAppServer Sie können diese Operationen mit der Elastic Beanstalk-Konsole, der oder der Elastic Beanstalk-API AWS CLI ausführen. Weitere Informationen finden Sie in den AWS CLI Beispielen für Elastic Beanstalk oder in der API-Referenz. AWS Elastic Beanstalk

Verwaltung der Autoscaling-Effekte bei geheimer Synchronisation

Wenn nach der Aktualisierung des Secret Stores ein Scale-Out-Ereignis oder eine Instanzersetzung auftritt, enthält die neue Instanz, die erscheint, die neuesten geheimen Werte aus Secrets Manager oder Systems Manager Parameter Store. Ein solches Ereignis kann auch dann eintreten, wenn nicht alle anderen Instanzen in der Umgebung aktualisiert wurden, um die neuen Secrets abzurufen.

Wichtig

Sie müssen sicherstellen, dass Ihre Anwendung zwei verschiedene geheime Werte für dieselbe Umgebungsvariable verwenden kann. Dies berücksichtigt Ereignisse, bei denen eine geheime Aktualisierung in Secrets Manager oder Systems Manager Parameter Store erfolgt, gefolgt von einer Skalierung oder einem Austausch der Instanz in Ihrer Umgebung, während die anderen Instanzen noch auf die Aktualisierung der Umgebungsvariablen warten. Während der Wartezeit für die Aktualisierung haben nicht alle Umgebungsinstanzen dieselben Werte für die Umgebungsvariablen des geheimen Speichers.

Ein Beispiel für einen solchen Anwendungsfall ist eine Rotation der Datenbankanmeldeinformationen. Wenn auf die Rotation der Anmeldeinformationen ein Scale-Out-Ereignis folgt, enthalten die Umgebungsgeheimnisse, auf die die neu gestarteten Instanzen verweisen, die aktualisierten Datenbankanmeldeinformationen. Die Umgebungsgeheimnisse, auf die von den vorhandenen Instanzen verwiesen wird, behalten jedoch den alten Wert bei, bis sie durch die OR-Operationen aktualisiert werden. UpdateEnvironment RestartAppServer

Mehrzeilige Werte in Amazon Linux 2-Umgebungsvariablen

Mehrzeilige Werte bestehen aus mehr als einer Zeile und enthalten ein Zeichen für den Zeilenumbruch. Mit Ausnahme von Docker- und ECS-based Docker-Plattformen unterstützen Plattformen, die unter Amazon Linux 2 ausgeführt werden, keine mehrzeiligen Werte für Umgebungsvariablen

Anmerkung

Elastic Beanstalk schlägt bei der Bereitstellung der betroffenen Umgebungen fehl, wenn ein mehrzeiliger Wert erkannt wird.

Die folgenden Optionen können als Problemumgehung oder Lösung für das mehrzeilige Problem dienen:

  • Aktualisieren Sie Ihre Amazon Linux 2-Umgebung auf Amazon Linux 2023. Weitere Informationen finden Sie unter Migration von Amazon Linux 2 zu Amazon Linux 2023.

  • Entfernen Sie Zeilenumbrüche aus Ihren geheimen Werten. Ein Beispiel für einen Ansatz besteht darin, Ihre Werte mit Base64 zu kodieren, bevor Sie sie im geheimen Speicher speichern. Ihre Anwendung müsste dann den Wert wieder in das ursprüngliche Format dekodieren, wenn sie ihn aus der geheimen Umgebungsvariablen referenziert.

  • Entwerfen Sie Ihren Anwendungscode so, dass die Daten direkt aus Secrets Manager oder Systems Manager Parameter Store abgerufen werden. Weitere Informationen finden Sie unter Abrufen von Geheimnissen in Verwendung von Secrets Manager oder Abrufen von Parametern. Verwendung des Systems Manager Parameter Store