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.
Sicherheit bei AWS AppConfig
Cloud-Sicherheit AWS hat höchste Priorität. Als AWS Kunde profitieren Sie von einer Rechenzentrums- und Netzwerkarchitektur, die auf die Anforderungen der sicherheitsrelevantesten Organisationen zugeschnitten sind.
Sicherheit ist eine gemeinsame Verantwortung von Ihnen AWS und Ihnen. Das Modell der geteilten Verantwortung
-
Sicherheit der Cloud — AWS ist verantwortlich für den Schutz der Infrastruktur, auf der AWS Dienste in der ausgeführt AWS Cloud werden. AWS bietet Ihnen auch Dienste, die Sie sicher nutzen können. Third-party Auditoren testen und verifizieren regelmäßig die Wirksamkeit unserer Sicherheitsvorkehrungen im Rahmen der AWS
. Weitere Informationen zu den Compliance-Programmen, die für Folgendes gelten AWS Systems Manager, finden Sie unter AWS Services im Umfang nach Compliance-Programm . -
Sicherheit in der Cloud — Ihre Verantwortung wird durch den AWS Dienst bestimmt, den Sie nutzen. Sie sind auch für andere Faktoren verantwortlich, etwa für die Vertraulichkeit Ihrer Daten, für die Anforderungen Ihres Unternehmens und für die geltenden Gesetze und Vorschriften.
AWS AppConfig ist ein Tool in AWS Systems Manager. Informationen zur Anwendung des Modells der gemeinsamen Verantwortung bei der Verwendung AWS AppConfig finden Sie unter Sicherheit in AWS Systems Manager. In diesem Abschnitt wird beschrieben, wie Systems Manager so konfiguriert wird, dass die Sicherheits- und Compliance-Ziele von erfüllt AWS AppConfig werden.
Implementieren des Zugriffs mit geringsten Berechtigungen
Als bewährte Sicherheitsmethode sollten Sie nur die Mindestberechtigungen gewähren, die Identitäten benötigen, um bestimmte Aktionen an bestimmten Ressourcen unter bestimmten Bedingungen auszuführen. AWS AppConfig Der Agent bietet zwei Funktionen, die es dem Agenten ermöglichen, auf das Dateisystem einer Instanz oder eines Containers zuzugreifen: Sicherung und Schreiben auf Festplatte. Wenn Sie diese Funktionen aktivieren, stellen Sie sicher, dass nur der AWS AppConfig Agent über Schreibberechtigungen für die angegebenen Konfigurationsdateien im Dateisystem verfügt. Stellen Sie außerdem sicher, dass nur die Prozesse, die zum Lesen aus diesen Konfigurationsdateien erforderlich sind, dazu in der Lage sind. Die Implementierung der geringstmöglichen Zugriffsrechte ist eine grundlegende Voraussetzung zum Reduzieren des Sicherheitsrisikos und der Auswirkungen, die aufgrund von Fehlern oder böswilligen Absichten entstehen könnten.
Weitere Informationen zur Implementierung des Zugriffs mit den geringsten Rechten finden Sie im AWS Well-Architected Tool Benutzerhandbuch unter SEC03-BP02 Gewähren des Zugriffs mit den geringsten Rechten. Weitere Informationen zu den in diesem Abschnitt erwähnten AWS AppConfig Agentenfunktionen finden Sie unterVerwenden eines Manifests, um zusätzliche Abruffunktionen zu aktivieren.
Datenverschlüsselung im Ruhezustand für AWS AppConfig
AWS AppConfig bietet standardmäßig Verschlüsselung zum Schutz von Kundendaten im Ruhezustand mithilfe von AWS-eigene Schlüssel.
AWS-eigene Schlüssel— AWS AppConfig verwendet diese Schlüssel standardmäßig, um Daten, die vom Service bereitgestellt und im AWS AppConfig Datenspeicher gehostet werden, automatisch zu verschlüsseln. Sie können ihre Verwendung nicht einsehen, verwalten AWS-eigene Schlüssel, verwenden oder überprüfen. Sie müssen jedoch keine Maßnahmen ergreifen oder Programme zum Schutz der Schlüssel ändern, die zur Verschlüsselung Ihrer Daten verwendet werden. Weitere Informationen finden Sie unter AWS-eigene Schlüssel im AWS Key Management Service -Entwicklerhandbuch.
Sie können diese Verschlüsselungsebene zwar nicht deaktivieren oder einen alternativen Verschlüsselungstyp auswählen, aber Sie können einen vom Kunden verwalteten Schlüssel angeben, der beim Speichern der im Datenspeicher gehosteten AWS AppConfig Konfigurationsdaten und bei der Bereitstellung Ihrer Konfigurationsdaten verwendet wird.
Kundenverwaltete Schlüssel — AWS AppConfig unterstützt die Verwendung eines symmetrischen, vom Kunden verwalteten Schlüssels, den Sie erstellen, besitzen und verwalten, um der vorhandenen AWS-eigener Schlüssel Verschlüsselungsebene eine zweite Verschlüsselungsebene hinzuzufügen. Da Sie die volle Kontrolle über diese Verschlüsselungsebene haben, können Sie beispielsweise folgende Aufgaben ausführen:
-
Festlegung und Pflege wichtiger Richtlinien und Zuschüsse
-
Festlegung und Aufrechterhaltung von IAM-Richtlinien
-
Aktivieren und Deaktivieren wichtiger Richtlinien
-
Kryptographisches Material mit rotierendem Schlüssel
-
Hinzufügen von -Tags
-
Erstellen von Schlüsselaliasen
-
Schlüssel für das Löschen von Schlüsseln planen
Weitere Informationen finden Sie im AWS Key Management Service Entwicklerhandbuch unter Vom Kunden verwalteter Schlüssel.
AWS AppConfig unterstützt vom Kunden verwaltete Schlüssel
AWS AppConfig bietet Unterstützung für vom Kunden verwaltete Schlüsselverschlüsselung für Konfigurationsdaten. Für Konfigurationsversionen, die im AWS AppConfig gehosteten Datenspeicher gespeichert sind, können Kunden KmsKeyIdentifier im entsprechenden Konfigurationsprofil eine festlegen. Jedes Mal, wenn eine neue Version der Konfigurationsdaten mithilfe des CreateHostedConfigurationVersion API-Vorgangs erstellt wird, wird ein AWS KMS Datenschlüssel aus dem AWS AppConfig generiert, KmsKeyIdentifier um die Daten vor dem Speichern zu verschlüsseln. Beim späteren Zugriff auf die Daten, entweder während des GetHostedConfigurationVersion oder des StartDeployment API-Vorgangs, werden die Konfigurationsdaten anhand von Informationen über den generierten Datenschlüssel AWS AppConfig entschlüsselt.
AWS AppConfig bietet auch Unterstützung für die vom Kunden verwaltete Schlüsselverschlüsselung für bereitgestellte Konfigurationsdaten. Um Konfigurationsdaten zu verschlüsseln, können Kunden für ihre Bereitstellung eine KmsKeyIdentifier angeben. AWS AppConfig generiert damit den AWS KMS DatenschlüsselKmsKeyIdentifier, um Daten über den StartDeployment API-Vorgang zu verschlüsseln.
AWS AppConfig Verschlüsselung, Zugriff
Verwenden Sie beim Erstellen eines vom Kunden verwalteten Schlüssels die folgende Schlüsselrichtlinie, um sicherzustellen, dass der Schlüssel verwendet werden kann.
Um gehostete Konfigurationsdaten mit einem vom Kunden verwalteten Schlüssel zu verschlüsseln, CreateHostedConfigurationVersion benötigt der Identity Calling die folgende Richtlinienerklärung, die einem Benutzer, einer Gruppe oder einer Rolle zugewiesen werden kann:
Wenn Sie ein Secrets Manager-Geheimnis oder andere Konfigurationsdaten verwenden, die mit einem vom Kunden verwalteten Schlüssel verschlüsselt wurden, kms:Decrypt müssen Sie die Daten entschlüsseln und abrufen. retrievalRoleArn
Beim Aufrufen des AWS AppConfig StartDeployment API-Vorgangs StartDeployment benötigt der Identitätsaufruf die folgende IAM-Richtlinie, die einem Benutzer, einer Gruppe oder einer Rolle zugewiesen werden kann:
Beim Aufrufen des AWS AppConfig GetLatestConfiguration API-Vorgangs GetLatestConfiguration benötigt der Identitätsaufruf die folgende Richtlinie, die einem Benutzer, einer Gruppe oder einer Rolle zugewiesen werden kann:
Verschlüsselungskontext
Ein Verschlüsselungskontext ist ein optionaler Satz von Schlüssel-Wert-Paaren, die zusätzliche kontextbezogene Informationen zu den Daten enthalten.
AWS KMS verwendet den Verschlüsselungskontext als zusätzliche authentifizierte Daten, um die authentifizierte Verschlüsselung zu unterstützen. Wenn Sie einen Verschlüsselungskontext in eine Anforderung zum Verschlüsseln von Daten einbeziehen, wird der Verschlüsselungskontext AWS KMS an die verschlüsselten Daten gebunden. Zur Entschlüsselung von Daten müssen Sie denselben Verschlüsselungskontext in der Anfrage übergeben.
AWS AppConfig Verschlüsselungskontext: AWS AppConfig verwendet bei allen AWS KMS kryptografischen Vorgängen für verschlüsselte gehostete Konfigurationsdaten und Bereitstellungen einen Verschlüsselungskontext. Der Kontext enthält einen Schlüssel, der dem Datentyp entspricht, und einen Wert, der das spezifische Datenelement identifiziert.
Überwachung Ihrer Verschlüsselungsschlüssel für AWS
Wenn Sie einen vom AWS KMS Kunden verwalteten Schlüssel mit verwenden AWS AppConfig, können Sie Amazon CloudWatch Logs verwenden AWS CloudTrail , um Anfragen zu verfolgen, die AWS AppConfig an gesendet AWS KMS werden.
Das folgende Beispiel ist ein CloudTrail Ereignis zur Überwachung von AWS KMS
VorgängenDecrypt, die von aufgerufen werden AWS AppConfig , um auf Daten zuzugreifen, die mit Ihrem vom Kunden verwalteten Schlüssel verschlüsselt wurden:
{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "appconfig.amazonaws.com" }, "eventTime": "2023-01-03T02:22:28z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "Region", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:appconfig:deployment:arn": "arn:aws:appconfig:Region:account_ID:application/application_ID/environment/environment_ID/deployment/deployment_ID" }, "keyId": "arn:aws:kms:Region:account_ID:key/key_ID", "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "account_ID", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:Region:account_ID:key_ID" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "account_ID", "sharedEventID": "dc129381-1d94-49bd-b522-f56a3482d088" }
Zugriff AWS AppConfig mithilfe eines Schnittstellenendpunkts (AWS PrivateLink)
Sie können AWS PrivateLink es verwenden, um eine private Verbindung zwischen Ihrer VPC und herzustellen. AWS AppConfig Sie können darauf zugreifen, AWS AppConfig als ob es in Ihrer VPC wäre, ohne ein Internet-Gateway, ein NAT-Gerät, eine VPN-Verbindung oder Direct Connect eine Verbindung zu verwenden. Für den Zugriff auf Instances in Ihrer VPC sind keine öffentlichen IP-Adressen erforderlich. AWS AppConfig
Sie stellen diese private Verbindung her, indem Sie einen Schnittstellen-Endpunkt erstellen, der von AWS PrivateLink unterstützt wird. Wir erstellen eine Endpunkt-Netzwerkschnittstelle in jedem Subnetz, das Sie für den Schnittstellen-Endpunkt aktivieren. Hierbei handelt es sich um vom Anforderer verwaltete Netzwerkschnittstellen, die als Eingangspunkt für den Datenverkehr dienen, der für AWS AppConfig bestimmt ist.
Weitere Informationen finden Sie unter Zugriff auf AWS-Services über AWS PrivateLink im AWS PrivateLink -Leitfaden.
Überlegungen für AWS AppConfig
Bevor Sie einen Schnittstellenendpunkt für einrichten AWS AppConfig, lesen Sie die Überlegungen im AWS PrivateLink Handbuch.
AWS AppConfig unterstützt das Ausführen von Aufrufen der appconfigdata Dienste appconfig und über den Schnittstellenendpunkt.
Erstellen Sie einen Schnittstellenendpunkt für AWS AppConfig
Sie können einen Schnittstellenendpunkt für die AWS AppConfig Verwendung der Amazon VPC-Konsole oder der AWS Command Line Interface (AWS CLI) erstellen. Weitere Informationen finden Sie unter Erstellen eines Schnittstellenendpunkts im AWS PrivateLink -Leitfaden.
Erstellen Sie einen Schnittstellenendpunkt für die AWS AppConfig Verwendung der folgenden Servicenamen:
com.amazonaws.region.appconfig
com.amazonaws.region.appconfigdata
Wenn Sie privates DNS für den Schnittstellenendpunkt aktivieren, können Sie API-Anfragen an den AWS AppConfig standardmäßigen regionalen DNS-Namen stellen. Beispiel: appconfig.us-east-1.amazonaws.com und appconfigdata.us-east-1.amazonaws.com.
Erstellen einer Endpunktrichtlinie für Ihren Schnittstellen-Endpunkt
Eine Endpunktrichtlinie ist eine IAM-Ressource, die Sie an einen Schnittstellen-Endpunkt anfügen können. Die Standard-Endpunktrichtlinie ermöglicht den vollen Zugriff AWS AppConfig über den Schnittstellenendpunkt. Um den Zugriff zu kontrollieren, der AWS AppConfig von Ihrer VPC aus gewährt wird, fügen Sie dem Schnittstellenendpunkt eine benutzerdefinierte Endpunktrichtlinie hinzu.
Eine Endpunktrichtlinie gibt die folgenden Informationen an:
-
Die Prinzipale, die Aktionen ausführen können (AWS-Konten, IAM-Benutzer und IAM-Rollen).
-
Aktionen, die ausgeführt werden können
-
Die Ressourcen, auf denen die Aktionen ausgeführt werden können.
Weitere Informationen finden Sie unter Steuern des Zugriffs auf Services mit Endpunktrichtlinien im AWS PrivateLink -Leitfaden.
Beispiel: VPC-Endpunktrichtlinie für AWS AppConfig actions
Im Folgenden finden Sie ein Beispiel für eine benutzerdefinierte Endpunktrichtlinie. Wenn Sie diese Richtlinie an Ihren Schnittstellen-Endpunkt anhängen, gewährt sie allen Prinzipalen auf allen Ressourcen den Zugriff auf die aufgeführten AWS AppConfig -Aktionen.
{ "Statement": [ { "Principal": "*", "Effect": "Allow", "Action": [ "appconfig:CreateApplication", "appconfig:CreateEnvironment", "appconfig:CreateConfigurationProfile", "appconfig:StartDeployment", "appconfig:GetLatestConfiguration", "appconfig:StartConfigurationSession" ], "Resource":"*" } ] }
Secrets Manager-Schlüsselrotation
In diesem Abschnitt werden wichtige Sicherheitsinformationen zur AWS AppConfig Integration mit Secrets Manager beschrieben. Informationen zu Secrets Manager finden Sie unter Was ist AWS Secrets Manager? im AWS Secrets Manager Benutzerhandbuch.
Einrichtung der automatischen Rotation von Secrets Manager-Geheimnissen, bereitgestellt von AWS AppConfig
Rotation ist der Vorgang, bei dem ein in Secrets Manager gespeichertes Geheimnis regelmäßig aktualisiert wird. Wenn Sie ein Secret rotieren, werden die Anmeldeinformationen sowohl im Secret als auch in der Datenbank oder im Service aktualisiert. Sie können die automatische Rotation von Geheimnissen in Secrets Manager konfigurieren, indem Sie eine AWS Lambda Funktion verwenden, um das Geheimnis und die Datenbank zu aktualisieren. Weitere Informationen finden Sie unter Rotate AWS Secrets Manager Secrets im AWS Secrets Manager Benutzerhandbuch.
Um die Schlüsselrotation der Secrets Manager-Geheimnisse zu ermöglichen, die von bereitgestellt werden AWS AppConfig, aktualisieren Sie Ihre Rotations-Lambda-Funktion und stellen Sie das rotierte Geheimnis bereit.
Anmerkung
Stellen Sie Ihr AWS AppConfig Konfigurationsprofil bereit, nachdem Ihr Secret rotiert und vollständig auf die neue Version aktualisiert wurde. Sie können feststellen, ob das Secret rotiert wurde, weil VersionStage sich der Status von von AWSPENDING zu ändertAWSCURRENT. Der Abschluss der geheimen Rotation erfolgt innerhalb der finish_secret Funktion Secrets Manager Rotation Templates.
Hier ist eine Beispielfunktion, die eine AWS AppConfig Bereitstellung startet, nachdem ein Secret rotiert wurde.
import time import boto3 client = boto3.client('appconfig') def finish_secret(service_client, arn, new_version): """Finish the rotation by marking the pending secret as current This method finishes the secret rotation by staging the secret staged AWSPENDING with the AWSCURRENT stage. Args: service_client (client): The secrets manager service client arn (string): The secret ARN or other identifier new_version (string): The new version to be associated with the secret """ # First describe the secret to get the current version metadata = service_client.describe_secret(SecretId=arn) current_version = None for version in metadata["VersionIdsToStages"]: if "AWSCURRENT" in metadata["VersionIdsToStages"][version]: if version == new_version: # The correct version is already marked as current, return logger.info("finishSecret: Version %s already marked as AWSCURRENT for %s" % (version, arn)) return current_version = version break # Finalize by staging the secret version current service_client.update_secret_version_stage(SecretId=arn, VersionStage="AWSCURRENT", MoveToVersionId=new_version, RemoveFromVersionId=current_version) # Deploy rotated secret response = client.start_deployment( ApplicationId='TestApp', EnvironmentId='TestEnvironment', DeploymentStrategyId='TestStrategy', ConfigurationProfileId='ConfigurationProfileId', ConfigurationVersion=new_version, KmsKeyIdentifier=key, Description='Deploy secret rotated at ' + str(time.time()) ) logger.info("finishSecret: Successfully set AWSCURRENT stage to version %s for secret %s." % (new_version, arn))