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
Themen
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:
-
AWS Systems Manager Preisgestaltung
(wählen Sie Parameter Store aus der Inhaltsliste aus)
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.
Themen
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
-
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:
-
Geheimnisse erstellen in Secrets Manager zum Erstellen und Abrufen von Geheimnissen verwenden
-
Parameter erstellen in Verwenden des Systems Manager-Parameterspeichers zum Erstellen und Abrufen von Parametern
-
-
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
Öffnen Sie die Elastic Beanstalk-Konsole
und wählen Sie in der Liste der Regionen Ihre aus. AWS-Region -
Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.
Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.
-
Wählen Sie in der Konfigurationskategorie Updates, monitoring and logging (Updates, Überwachung und Protokolle) die Option Edit (Bearbeiten) aus.
-
Scrollen Sie nach unten zu Runtime-Umgebungsvariablen.
-
Wählen Sie Umgebungsvariable hinzufügen aus.
-
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).
-
Geben Sie für den Namen der Umgebungsvariablen den Namen der Umgebungsvariablen ein, die das Geheimnis oder den Parameterwert enthalten soll.
-
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.
-
Wenn Sie weitere Variablen hinzufügen müssen, wiederholen Sie Schritt 6 bis Schritt 9.
-
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-AbCd12MY_PARAMETER:arn:aws:ssm:us-east-1:111122223333:parameter/myparam
Beispiel. ebextensions/options.config für Umgebungsgeheimnisse (Standardsyntax)
option_settings: - namespace:aws:elasticbeanstalk:application:environmentsecretsoption_name:MY_SECRETvalue:arn:aws:secretsmanager:us-east-1:111122223333:secret:mysecret-AbCd12- namespace:aws:elasticbeanstalk:application:environmentsecretsoption_name:MY_PARAMETERvalue: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 \ --regionus-east-1\ --application-namemy-app\ --environment-namemy-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 \ --regionus-east-1\ --application-namemy-app\ --environment-namemy-env\ --platform-arn"arn:aws:elasticbeanstalk:::platform/Node.js 24 running on 64bit Amazon Linux 2023"\ --option-settingsfile://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 \ --regionus-east-1\ --application-namemy-app\ --environment-namemy-env\ --platform-arn"arn:aws:elasticbeanstalk:::platform/Node.js 24 running on 64bit Amazon Linux 2023"\ --option-settingsfile://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