Verschlüsselung der Batch-Auswertung
Wenn Sie kmsKeyArn bei einer Batch-Auswertung eine angeben, verschlüsselt der Dienst alle in S3 gespeicherten Ausgabeartefakte mithilfe der serverseitigen S3-Verschlüsselung mit KMS ()SSE-KMS. Dazu gehören die Datenquellenkonfiguration, die Sitzungsmetadaten und die Auswertungsergebnisse.
Das kmsKeyArn wird bei der Erstellung über angegebenStartBatchEvaluation.
Funktionsweise
Die Verschlüsselung der Batch-Auswertung verwendet S3 SSE-KMS. Wenn der Dienst die Batch-Evaluierungsausgabe 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 während des Workflows zur Batch-Auswertung asynchron fehlschlagen zu müssen.
Der Dienst überprüft außerdem, ob er kms:GenerateDataKey mit seinen eigenen Anmeldeinformationen arbeiten kann, um sicherzustellen, dass die Schlüsselrichtlinie dem Dienstprinzipal die erforderlichen Berechtigungen zum Schreiben verschlüsselter Ausgaben gewährt.
AgentCore Evaluations unterstützt nur KMS-Schlüssel mit symmetrischer Verschlüsselung. Der KMS-Schlüssel muss sich in derselben AWS Region wie die Batch-Auswertung befinden.
Konfiguration von Berechtigungen zur Verwendung eines vom Kunden verwalteten KMS-Schlüssels
Die folgende Schlüsselrichtlinie bietet die Mindestberechtigungen, die für die Verschlüsselung der Batch-Evaluierung erforderlich sind. Die Richtlinie enthält drei Anweisungen:
-
AllowCallerAccess— Ermöglicht dem IAM-Benutzer oder der IAM-Rolle, den Schlüssel über
DescribeKeyzu validieren. -
AllowCallerCryptoOps— Ermöglicht dem IAM-Benutzer oder der IAM-Rolle das Ver- und Entschlüsseln, je nach Verschlüsselungskontext.
-
AllowServicePrincipalAccess— Ermöglicht dem AgentCore Dienstprinzipal das Verschlüsseln und Entschlüsseln von Batch-Auswertungsdaten in S3, aufgeteilt nach Quellkonto und Quell-ARN.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyBatchEvaluationRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyBatchEvaluationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:batchEvaluationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/*" } } }, { "Sid": "AllowServicePrincipalAccess", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/*" } } } ] }
Die Richtlinie enthält die folgenden Aussagen:
-
AllowCallerAccess— Erteilt der IAM-Rolle die
kms:DescribeKeyBerechtigung zur Schlüsselvalidierung bei der Erstellung der Batch-Auswertung.111122223333Ersetzen Sie es durch Ihre Konto-ID undMyBatchEvaluationRoledurch die IAM-Rolle oder den IAM-Benutzer, der die Batch-Evaluierungen startet. -
AllowCallerCryptoOps— Gewährt die IAM-Rolle
kms:GenerateDataKeyund diekms:DecryptBerechtigungen, die vom Verschlüsselungskontext abhängig sind.aws:bedrock-agentcore:batchEvaluationArnErsetzen Sie111122223333MyBatchEvaluationRole, undus-east-1durch Ihre Werte. Um Zugriff auf alle Batch-Auswertungen in Ihrem Konto zu gewähren, verwenden Sie einen Platzhalter mitStringLike:arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/*. -
AllowServicePrincipalAccess— Gewährt dem AgentCore Dienstprinzipal
kms:GenerateDataKeyundkms:DecryptBerechtigungen zum Verschlüsseln und Entschlüsseln von Batch-Bewertungsdaten in S3. Eingeschränkt nach Quellkonto und Quell-ARN (aws:SourceArn), um verwirrte Deputy-Angriffe zu verhindern. Ersetzen Sieus-east-1und111122223333durch Ihre Region und Konto-ID.
Einschränkung des Zugriffs auf den vom Kunden verwalteten KMS-Schlüssel
Sie können den Verschlüsselungskontext verwenden, um den Zugriff auf den vom Kunden verwalteten Schlüssel einzuschränken. AgentCore Die Evaluierungen umfassen den folgenden Verschlüsselungskontext in allen KMS-Vorgängen:
{ "aws:bedrock-agentcore:batchEvaluationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/batch-evaluation-id" }
Sie können diesen Verschlüsselungskontext in wichtigen Richtlinienbedingungen verwenden, um KMS-Operationen auf bestimmte Batch-Auswertungen zu beschränken, wie in der AllowCallerCryptoOps Anweisung im obigen Beispiel für eine Schlüsselrichtlinie dargestellt. Beachten Sie, dass der Kontext eher aws:SourceArn für das Scoping als für den Verschlüsselungskontext AllowServicePrincipalAccess verwendet wird.
Starten einer Batch-Evaluierung mit einem vom Kunden verwalteten KMS-Schlüssel
Geben Sie den kmsKeyArn Parameter an, wenn Sie Folgendes aufrufenStartBatchEvaluation:
Beispiel
Überwachung der KMS-Nutzung für Batch-Auswertungen
Die folgenden CloudTrail Ereignisnamen werden für KMS-Operationen zur Batch-Auswertung angezeigt:
-
GenerateDataKey— Beim Schreiben einer verschlüsselten Batch-Evaluierungsausgabe nach S3 (Datenquellenkonfiguration, Sitzungsmetadaten, Auswertungsergebnisse). DasencryptionContextFeld enthältaws:bedrock-agentcore:batchEvaluationArn. -
Decrypt— Beim Lesen der verschlüsselten Batch-Evaluierungsausgabe von S3. -
DescribeKey— Bei der Validierung des Schlüssels bei der Erstellung der Batch-Auswertung.
Weitere Informationen zur Überwachung der KMS-Nutzung finden Sie unter Protokollieren von AWS KMS-API-Aufrufen mit AWS CloudTrail im AWS Key Management Service Developer Guide.
Verhalten, wenn ein Schlüssel nicht mehr verfügbar ist
Wenn Sie den vom Kunden verwalteten KMS-Schlüssel, der bei einer Batch-Auswertung verwendet wurde, deaktivieren oder löschen:
-
StartBatchEvaluation— Schlägt bei der Validierung mit fehl
ValidationException. -
GetBatchEvaluation— Gibt Metadaten (Name, Status, Zeitstempel) zurück, aber die in verschlüsselten S3-Objekten gespeicherten Evaluationsergebnisse können vom Dienst nicht gelesen werden.
-
ListBatchEvaluations— Erfolgreich, da beim Auflisten nur Metadaten zurückgegeben werden und keine KMS-Operationen erforderlich sind.
-
StopBatchEvaluation— Erfolgreich, weil für das Stoppen keine Daten entschlüsselt werden müssen.
-
DeleteBatchEvaluation— Erfolgreich, weil für das Löschen von S3-Objekten keine KMS-Entschlüsselung erforderlich ist.
Um den Zugriff wiederherzustellen, aktivieren Sie den Schlüssel erneut oder aktualisieren Sie die Schlüsselrichtlinie, um die erforderlichen Berechtigungen zu gewähren.
Die oben beschriebenen Lebenszyklusoperationen für die Batch-Evaluierung sind AgentCore CLI-Befehlen zugeordnet. Die archive Befehle stop und zielen über die -i, --id <id> Option auf den Job ab. Der view batch-evaluation Befehl verwendet die ID als Positionsargument:
-
StartBatchEvaluation—
agentcore run batch-evaluation --kms-key <arn>(benutze-r/--runtimeund-e/--evaluator) -
GetBatchEvaluation —
agentcore view batch-evaluation <id> -
ListBatchEvaluations—
agentcore view batch-evaluationoderagentcore batch-evaluations history -
StopBatchEvaluation —
agentcore stop batch-evaluation -i <id> -
DeleteBatchEvaluation —
agentcore archive batch-evaluation -i <id>