Verschlüsseln Ihres Data Catalog
AWS Glue Data Catalog-Verschlüsselung bietet erhöhte Sicherheit für Ihre sensiblen Daten. AWS Glue wird in AWS Key Management Service (AWS KMS) integriert, um Metadaten zu verschlüsseln, die im Datenkatalog gespeichert sind. Sie können die Verschlüsselungseinstellungen für Ressourcen im Datenkatalog mithilfe der AWS Glue-Konsole oder der AWS CLI aktivieren oder deaktivieren.
Wenn Sie die Verschlüsselung für Ihren Datenkatalog aktivieren, werden alle neuen Objekte, die Sie erstellen, verschlüsselt. Wenn Sie die Verschlüsselung deaktivieren, werden die neu erstellten Objekte nicht verschlüsselt, aber vorhandene verschlüsselte Objekte bleiben verschlüsselt.
Sie können Ihren gesamten Datenkatalog mit von AWS verwalteten oder vom Kunden verwalteten Verschlüsselungsschlüsseln verschlüsseln. Weitere Informationen zu Schlüsseltypen und zum Schlüsselstatus finden Sie unter AWS Key Management Service-Konzepte im AWS Key Management Service-Entwicklerhandbuch.
Wenn Sie den verschlüsselten Datenkatalog mit einem Crawler verwenden, müssen Sie die Verschlüsselungseinstellungen beibehalten. Das Entfernen von Verschlüsselungseinstellungen, nachdem ein Crawler einen verschlüsselten Katalog verarbeitet hat, löst Fehler aus. Wenn Sie Verschlüsselungseinstellungen entfernen müssen, erstellen Sie einen neuen Crawler, anstatt den vorhandenen Crawler zu ändern.
AWS-verwaltete Schlüssel
AWS-verwaltete Schlüssel sind KMS-Schlüssel in Ihrem Konto, die in Ihrem Namen von einem AWS-Service, der in AWS KMS integriert ist, erstellt, verwaltet und verwendet werden. Sie können die AWS-verwalteten Schlüssel in Ihrem Konto anzeigen, ihre Schlüsselrichtlinien abrufen und ihre Verwendung in AWS CloudTrail-Protokollen prüfen. Sie haben jedoch nicht die Möglichkeit, diese Schlüssel zu verwalten oder ihre Berechtigungen zu ändern.
Die Verschlüsselung im Ruhezustand ist für die Verwaltung der AWS-verwalteten Schlüssel für AWS Glue, die für die Verschlüsselung Ihrer Metadaten verwendet werden, automatisch in AWS KMS integriert. Wenn beim Aktivieren der Metadatenverschlüsselung kein AWS-verwalteter Schlüssel vorhanden ist, erstellt AWS KMS automatisch einen neuen Schlüssel für Sie.
Weitere Informationen finden Sie unter Von AWS verwaltete Schlüssel.
Kundenverwaltete Schlüssel
Vom Kunden verwaltete Schlüssel sind KMS-Schlüssel in Ihrem AWS-Konto, die Sie erstellen, besitzen und verwalten. Sie haben die volle Kontrolle über diese KMS-Schlüssel. Sie haben folgende Möglichkeiten:
-
Sie können ihre wichtigsten Richtlinien, IAM-Richtlinien und Erteilungen einrichten und pflegen
-
Sie können diese aktivieren und deaktivieren
-
Sie können ihr kryptographisches Material rotieren
-
Tags hinzufügen
-
Sie können Aliase erstellen, die auf sie verweisen
-
Sie können sie zum Löschen einplanen
Weitere Informationen zum Verwalten von Berechtigungen eines kundenseitig verwalteten Schlüssels finden Sie unter Kundenseitig verwaltete Schlüssel.
AWS Glue unterstützt nur symmetrische kundenseitig verwaltete Schlüssel. In der Liste der KMS-Schlüssel werden nur symmetrische Schlüssel angezeigt. Wenn Sie jedoch auf Einen KMS-Schlüssel-ARN auswählen klicken, können Sie in der Konsole einen ARN für jeden Schlüsseltyp eingeben. Achten Sie darauf, dass Sie nur ARNs für symmetrische Schlüssel eingeben.
Folgen Sie dazu den Schritten zum Erstellen eines symmetrischen kundenverwalteten Schlüssels im Entwicklerhandbuch zum AWS Key Management Service.
Wenn Sie die Data-Catalog-Verschlüsselung im Ruhezustand aktivieren, werden folgende Ressourcentypen mit KMS-Schlüsseln verschlüsselt:
AWS Glue-Verschlüsselungskontext
Ein Verschlüsselungskontext ist ein optionaler Satz von Schlüssel-Wert-Paaren, der zusätzliche Kontextinformationen zu den Daten enthalten kann. AWS KMS verwendet den Verschlüsselungskontext als Additional Authenticated Data (AAD) zur Unterstützung der authentifizierten Verschlüsselung. Wenn Sie einen Verschlüsselungskontext in eine Anforderung zur Verschlüsselung von Daten aufnehmen, bindet AWS KMS den Verschlüsselungskontext an die verschlüsselten Daten. Zur Entschlüsselung von Daten müssen Sie denselben Verschlüsselungskontext in der Anforderung einschließen. AWS Glue verwendet bei allen kryptografischen Vorgängen in AWS KMS denselben Verschlüsselungskontext, wobei der Schlüssel glue_catalog_id ist und der Wert catalogId ist.
"encryptionContext": {
"glue_catalog_id": "111122223333"
}
Wenn Sie einen AWS-verwalteten Schlüssel oder einen symmetrischen, vom Kunden verwalteten Schlüssel verwenden, um Ihren Datenkatalog zu verschlüsseln, können Sie den Verschlüsselungskontext auch in Prüfaufzeichnungen und Protokollen verwenden, um zu ermitteln, wie der Schlüssel verwendet wird. Der Verschlüsselungskontext erscheint auch in Protokollen, die von AWS CloudTrail oder Amazon CloudWatch Logs generiert wurden.
Aktivieren der Verschlüsselung
Sie können die Verschlüsselung für Ihre AWS Glue Data Catalog-Objekte in den Data-Catalog-Einstellungen in der AWS Glue-Konsole oder mithilfe von AWS CLI aktivieren.
- Console
-
So aktivieren Sie die Verschlüsselung über die Konsole
Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS Glue-Konsole unter https://console.aws.amazon.com/glue/.
-
Wählen Sie im Navigationsbereich die Option Datenkatalog.
-
Aktivieren Sie auf der Seite Data-Catalog-Einstellungen das Kontrollkästchen Metadatenverschlüsselung, und wählen Sie einen AWS KMS-Schlüssel aus.
Wenn Sie die Verschlüsselung aktivieren und keinen vom Kunden verwalteten Schlüssel angeben, wird für die Verschlüsselungseinstellungen ein AWS-verwalteter KMS-Schlüssel verwendet.
-
(Optional) Wenn Sie einen vom Kunden verwalteten Schlüssel zum Verschlüsseln Ihres Datenkatalogs verwenden, haben Sie im Datenkatalog die Möglichkeit, eine IAM-Rolle zum Verschlüsseln und Entschlüsseln von Ressourcen zu registrieren. Sie müssen Ihrer IAM-Rolle Berechtigungen erteilen, die AWS Glue in Ihrem Namen annehmen kann. Dies beinhaltet AWS KMS-Berechtigungen für das Verschlüsseln und Entschlüsseln von Daten.
Wenn Sie eine neue Ressource im Datenkatalog erstellen, übernimmt AWS Glue die IAM-Rolle, die für das Verschlüsseln der Daten vorgesehen ist. Ähnlich verhält es sich, wenn ein Verbraucher auf die Ressource zugreift. Dann übernimmt AWS Glue die IAM-Rolle zur Entschlüsselung von Daten. Wenn Sie eine IAM-Rolle mit den notwendigen Berechtigungen registrieren, benötigt der aufrufende Principal keine Berechtigungen mehr, um auf den Schlüssel zuzugreifen und die Daten zu entschlüsseln.
Sie können KMS-Operationen nur dann an eine IAM-Rolle delegieren, wenn Sie einen kundenverwalteten Schlüssel für die Verschlüsselung der Data-Catalog-Ressourcen verwenden. Die KMS-Rollendelegierungsfunktion unterstützt derzeit nicht die Verwendung von AWS-verwalteten Schlüsseln zum Verschlüsseln von Data-Catalog-Ressourcen.
Wenn Sie eine IAM-Rolle zum Delegieren von KMS-Operationen aktivieren, können Sie nicht mehr auf die Data-Catalog-Ressourcen zugreifen, die zuvor mit einem AWS-verwalteten Schlüssel verschlüsselt wurden.
-
Um eine IAM-Rolle zu aktivieren, die AWS Glue übernehmen kann, um Daten in Ihrem Namen zu verschlüsseln und zu entschlüsseln, wählen Sie die Option KMS-Operationen an eine IAM-Rolle delegieren aus.
-
Wählen Sie als Nächstes eine IAM-Rolle aus.
Eine Anleitung zum Erstellen einer IAM;-Rolle finden Sie unter Erstellen von IAM-Rollen für AWS Glue.
Die IAM-Rolle, die AWS Glue übernimmt, um auf den Datenkatalog zuzugreifen, muss die Berechtigungen für das Verschlüsseln und Entschlüsseln von Metadaten im Datenkatalog haben. Sie können eine IAM-Rolle erstellen und die folgenden Inline-Richtlinien anfügen:
-
Fügen Sie die folgende Richtlinie hinzu, um AWS KMS-Berechtigungen zum Verschlüsseln und Entschlüsseln des Datenkatalogs einzubeziehen.
JSON
- JSON
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey"
],
"Resource": "arn:aws:kms:us-east-1:111122223333:key/<key-id>"
}
]
}
-
Fügen Sie der Rolle die folgende Vertrauensrichtlinie hinzu, damit der AWS Glue-Service die IAM-Rolle annimmt.
JSON
- JSON
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "glue.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
Fügen Sie als Nächstes die iam:PassRole-Berechtigung zur IAM-Rolle hinzu.
JSON
- JSON
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": [
"arn:aws:iam::111122223333:role/<encryption-role-name>"
]
}
]
}
Wenn Sie die Verschlüsselung aktivieren und keine IAM-Rolle angegeben haben, die AWS Glue übernehmen kann, muss der Principal, der auf den Datenkatalog zugreift, über die erforderlichen Berechtigungen verfügen, um die folgenden API-Operationen auszuführen:
-
kms:Decrypt
-
kms:Encrypt
-
kms:GenerateDataKey
- AWS CLI
-
So aktivieren Sie die Verschlüsselung mit dem SDK oder die AWS CLI
-
Verwenden Sie die API-Operation PutDataCatalogEncryptionSettings. Wenn kein Schlüssel angegeben ist, verwendet AWS Glue den AWS-verwalteten Verschlüsselungsschlüssel für das Kundenkonto, um den Datenkatalog zu verschlüsseln.
aws glue put-data-catalog-encryption-settings \
--data-catalog-encryption-settings '{
"EncryptionAtRest": {
"CatalogEncryptionMode": "SSE-KMS-WITH-SERVICE-ROLE",
"SseAwsKmsKeyId": "arn:aws:kms:<region>:<account-id>:key/<key-id>",
"CatalogEncryptionServiceRole":"arn:aws:iam::<account-id>:role/<encryption-role-name>"
}
}'
Wenn Sie die Verschlüsselung aktivieren, werden alle Objekte, die Sie in den Data-Catalog-Objekten erstellen, verschlüsselt. Wenn Sie diese Einstellung deaktivieren, werden die Objekte, die Sie im Data Katalog erstellen, nicht mehr verschlüsselt. Sie können weiterhin mit den erforderlichen KMS-Berechtigungen auf die vorhandenen verschlüsselten Objekte im Datenkatalog zugreifen.
Der AWS KMS-Schlüssel muss im AWS KMS-Schlüsselspeicher für alle Objekte, die im Data Catalog verschlüsselt sein, verfügbar bleiben. Wenn Sie den Schlüssel entfernen, können die Objekte nicht mehr entschlüsselt werden. In einigen Szenarien kann dies sinnvoll sein, um den Zugriff auf Metadaten des Data Catalog zu verhindern.
|
Überwachen Sie Ihre KMS-Schlüssel für AWS Glue
Wenn Sie KMS-Schlüssel mit Ihren Data-Catalog-Ressourcen verwenden, können Sie AWS CloudTrail oder Amazon CloudWatch Logs verwenden, um Anfragen zu verfolgen, die AWS Glue an AWS KMS sendet. AWS CloudTrail überwacht und zeichnet KMS-Vorgänge auf, die AWS Glue aufruft, um auf Daten zugreifen, die mit Ihren KMS-Schlüsseln verschlüsselt sind.
Es folgen Beispiele der AWS CloudTrail-Ereignisse für die Decrypt- und GenerateDataKey-Operationen.
- Decrypt
-
{
"eventVersion": "1.08",
"userIdentity": {
"type": "AssumedRole",
"principalId": "AROAXPHTESTANDEXAMPLE:Sampleuser01",
"arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01",
"accountId": "111122223333",
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "AROAXPHTESTANDEXAMPLE",
"arn": "arn:aws:iam::111122223333:role/Admin",
"accountId": "111122223333",
"userName": "Admin"
},
"webIdFederationData": {},
"attributes": {
"creationDate": "2024-01-10T14:33:56Z",
"mfaAuthenticated": "false"
}
},
"invokedBy": "glue.amazonaws.com"
},
"eventTime": "2024-01-10T15:18:11Z",
"eventSource": "kms.amazonaws.com",
"eventName": "Decrypt",
"awsRegion": "eu-west-2",
"sourceIPAddress": "glue.amazonaws.com",
"userAgent": "glue.amazonaws.com",
"requestParameters": {
"encryptionContext": {
"glue_catalog_id": "111122223333"
},
"encryptionAlgorithm": "SYMMETRIC_DEFAULT"
},
"responseElements": null,
"requestID": "43b019aa-34b8-4798-9b98-ee968b2d63df",
"eventID": "d7614763-d3fe-4f84-a1e1-3ca4d2a5bbd5",
"readOnly": true,
"resources": [
{
"accountId": "111122223333",
"type": "AWS::KMS::Key",
"ARN": "arn:aws:kms:<region>:111122223333:key/<key-id>"
}
],
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "111122223333",
"eventCategory": "Management",
"sessionCredentialFromConsole": "true"
}
- GenerateDataKey
-
{
"eventVersion": "1.08",
"userIdentity": {
"type": "AssumedRole",
"principalId": "AROAXPHTESTANDEXAMPLE:V_00_GLUE_KMS_GENERATE_DATA_KEY_111122223333",
"arn": "arn:aws:sts::111122223333:assumed-role/Admin/V_00_GLUE_KMS_GENERATE_DATA_KEY_111122223333",
"accountId": "111122223333",
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "AROAXPHTESTANDEXAMPLE",
"arn": "arn:aws:iam::111122223333:role/Admin",
"accountId": "AKIAIOSFODNN7EXAMPLE",
"userName": "Admin"
},
"webIdFederationData": {},
"attributes": {
"creationDate": "2024-01-05T21:15:47Z",
"mfaAuthenticated": "false"
}
},
"invokedBy": "glue.amazonaws.com"
},
"eventTime": "2024-01-05T21:15:47Z",
"eventSource": "kms.amazonaws.com",
"eventName": "GenerateDataKey",
"awsRegion": "eu-west-2",
"sourceIPAddress": "glue.amazonaws.com",
"userAgent": "glue.amazonaws.com",
"requestParameters": {
"keyId": "arn:aws:kms:eu-west-2:AKIAIOSFODNN7EXAMPLE:key/AKIAIOSFODNN7EXAMPLE",
"encryptionContext": {
"glue_catalog_id": "111122223333"
},
"keySpec": "AES_256"
},
"responseElements": null,
"requestID": "64d1783a-4b62-44ba-b0ab-388b50188070",
"eventID": "1c73689b-2ef2-443b-aed7-8c126585ca5e",
"readOnly": true,
"resources": [
{
"accountId": "111122223333",
"type": "AWS::KMS::Key",
"ARN": "arn:aws:kms:eu-west-2:111122223333:key/AKIAIOSFODNN7EXAMPLE"
}
],
"eventType": "AwsApiCall",
"managementEvent": true,
"recipientAccountId": "111122223333",
"eventCategory": "Management"
}