Verschlüsselung von Datensätzen
Wenn Sie a in einem kmsKeyArn Datensatz angeben, verschlüsselt der Dienst alle gespeicherten Beispiele mithilfe der serverseitigen S3-Verschlüsselung mit KMS ()SSE-KMS. Dies schließt Beispiele im Entwurf und in allen veröffentlichten Versionen ein.
Der kmsKeyArn ist nach der Erstellung des Datensatzes unveränderlich — Sie können ihn nicht ändern oder entfernen.
Funktionsweise
Die Datensatzverschlüsselung verwendet S3 SSE-KMS. Wenn der Dienst Datensatzinhalte in S3 schreibt oder liest, ruft S3 im Namen des Dienstes KMS auf, um die Daten zu verschlüsseln oder zu entschlüsseln. Der Dienstprinzipal (bedrock-agentcore.amazonaws.com) muss in der Schlüsselrichtlinie über KMS-Berechtigungen verfügen.
Zur API-Zeit überprüft der Dienst mithilfe einer Testlaufprüfung (Forward Access Sessions), ob der Aufrufer über KMS-Berechtigungen verfügt. Dadurch werden Berechtigungsprobleme sofort erkannt, anstatt bei der Erfassung asynchron fehlzuschlagen.
AgentCore Evaluations unterstützt nur KMS-Schlüssel mit symmetrischer Verschlüsselung. Der KMS-Schlüssel muss sich in derselben AWS Region wie der Datensatz befinden.
Erforderliche Schlüsselrichtlinie
Die folgende Schlüsselrichtlinie gewährt die Mindestberechtigungen, die für die Verschlüsselung von Datensätzen erforderlich sind. Sie beinhaltet zwei Aussagen:
-
AllowCallerAccess— Erteilt dem aufrufenden IAM-Benutzer oder der IAM-Rolle die
CreateDatasetErlaubnis, den Schlüssel zu validieren und zu verwenden. Der Dienst führt zur API-Zeit einen Probelauf durch, um sicherzustellen, dass der Anrufer KMS-Zugriff hat.111122223333Ersetzen Sie es durch Ihre Konto-ID undMyDatasetRoledurch die IAM-Rolle oder den IAM-Benutzer, der die Datensätze verwaltet. -
AllowAgentCoreDatasetAccess— Erteilt dem AgentCore Dienstprinzipal die Erlaubnis, Datensatzinhalte in S3 zu verschlüsseln und zu entschlüsseln.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyDatasetRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowAgentCoreDatasetAccess", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
Anmerkung
Dies ist die Mindestrichtlinie. Die empfohlenen Sicherheitsbedingungen finden Sie unter Einschränkungen des Zugriffs.
Einschränkung des Zugriffs
Sie können Bedingungen hinzufügen, um einzuschränken, wann der Schlüssel verwendet werden kann. Bei Datenmengen sendet der Dienst den folgenden Kontext mit KMS-Schreiboperationen (GenerateDataKey):
-
aws:SourceAccount— Die AWS Konto-ID, der der Datensatz gehört. -
aws:SourceArn— Der ARN des Datensatzes, der verschlüsselt wird. -
kms:EncryptionContext:aws:bedrock-agentcore:datasetArn— Der Dataset-ARN als Verschlüsselungskontext.
Die folgende Richtlinie unterteilt die Berechtigungen in Schreib- (bedingt) und Leserechte (nicht konditioniert):
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyDatasetRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowAgentCoreDatasetWrite", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "StringLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/*", "kms:EncryptionContext:aws:bedrock-agentcore:datasetArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/*" } } }, { "Sid": "AllowAgentCoreDatasetRead", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
Wichtig
Fügen Sie aws:SourceAccount der Leseanweisung (,) keine aws:SourceArn Bedingungen Decrypt hinzuDescribeKey. Beim Herunterladen von Datensätzen werden vordefinierte S3-URLs verwendet, und der herunterladende Client sendet keine Quellkontext-Header. Das Hinzufügen dieser Bedingungen zu Lesevorgängen führt zu Download-Fehlern.
111122223333Ersetzen Sie es durch Ihre Konto-ID und us-east-1 durch Ihre AWS Region. Um auf einen bestimmten Datensatz zu beschränken, ersetzen Sie den Platzhalter durch die Datensatz-ID:arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/my-dataset-id.
Einen Datensatz mit einem vom Kunden verwalteten KMS-Schlüssel erstellen
Geben Sie den kmsKeyArn Parameter beim Aufrufen anCreateDataset:
Beispiel
Überwachung der KMS-Nutzung für Datensätze
Die folgenden CloudTrail Ereignisnamen werden für KMS-Operationen mit Datensätzen angezeigt:
-
GenerateDataKey— Beim Erstellen eines Datensatzes, beim Hinzufügen von Beispielen, beim Aktualisieren von Beispielen oder beim Veröffentlichen einer Version. DasencryptionContextFeld enthältaws:bedrock-agentcore:datasetArn. -
Decrypt— Beim Lesen von Datensatzinhalten (GetDataset, ListDatasetExamples) oder beim Herunterladen von vorab signierten URLs. -
DescribeKey— Bei der Validierung des Schlüssels bei der Datensatzerstellung.
Verhalten, wenn ein Schlüssel nicht mehr verfügbar ist
Wenn Sie den vom Kunden verwalteten KMS-Schlüssel, der von einem Datensatz verwendet wird, deaktivieren oder löschen:
-
CreateDataset— Schlägt bei der Validierung mit fehl
ValidationException. -
AddDatasetExamples, UpdateDatasetExamples, CreateDatasetVersion — Schlägt
ValidationExceptionzur API-Zeit fehl. -
GetDataset— Schlägt fehl und gibt an,
ValidationExceptiondass der KMS-Schlüssel deaktiviert oder gelöscht wurde. -
ListDatasetExamples— Schlägt mit der
ValidationExceptionAngabe fehl, dass der KMS-Schlüssel deaktiviert oder gelöscht ist. -
DeleteDataset— Erfolgreich, weil für das Löschen von S3-Objekten keine KMS-Entschlüsselung erforderlich ist.