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.
Verschlüsselung im Ruhezustand für mehrstufiges Reinforcement-Learning
Optionen für die Verschlüsselung im Ruhezustand
Multi-turn Reinforcement-Learning-Jobs in Amazon SageMaker AI verschlüsseln alle Daten im Ruhezustand. Ihre Trainingseingabedaten, Ausgabedaten (einschließlich Modell-Checkpoints und trainierter Modellartefakte) und in Amazon S3 gespeicherte Zwischendaten werden serverseitig verschlüsselt. Sie müssen keine zusätzliche Konfiguration vornehmen, um sicherzustellen, dass Ihre Daten im Ruhezustand verschlüsselt werden.
Amazon SageMaker AI unterstützt die folgenden Verschlüsselungsoptionen für Multiturn-RL-Jobs:
-
Server-side Verschlüsselung mit AWS eigenem KMS-Schlüssel — Standardmäßig verschlüsselt Amazon SageMaker AI alle Trainingsausgaben und Zwischendaten mit einem AWS eigenen KMS-Schlüssel. Es ist keine zusätzliche Konfiguration erforderlich.
-
Server-side Verschlüsselung mit AWS KMS Schlüsseln (SSE-KMS) — Sie können optional einen vom Kunden verwalteten KMS-Schlüssel angeben, um Ihre Trainingsausgabedaten in Amazon S3 zu verschlüsseln. Wenn Ihre Eingabedaten in Amazon S3 bereits mit einem vom Kunden verwalteten Schlüssel verschlüsselt sind, muss die Ausführungsrolle über die Berechtigung zum Entschlüsseln dieser Daten verfügen.
Verschlüsselung von Daten im Ruhezustand mithilfe von Customer Managed AWS KMS keys
Wie Multi-Turn-RL einen vom Kunden verwalteten KMS-Schlüssel verwendet
Wenn Sie in der Ausgabekonfiguration Ihres Multiturn-RL-Jobs einen vom Kunden verwalteten KMS-Schlüssel angeben, verwendet Amazon SageMaker AI diesen Schlüssel, um die folgenden Ressourcen in Amazon S3 zu verschlüsseln:
-
Trainingsausgabedaten, einschließlich trainierter Modellartefakte (LoRa-Adaptergewichte)
-
Zwischenmodell input/output (Prüfpunkte und Trajektoriendaten für das wiederaufnahmefähige Modell)
-
Daten und Spuren des MLflow-Experiments
Wenn Sie einen vom Kunden verwalteten KMS-Schlüssel angeben, verwendet Amazon SageMaker AI zwei Mechanismen, um Ihre Daten zu verschlüsseln:
-
Zuschüsse — Bei der Auftragserstellung verwendet Amazon SageMaker AI die Anmeldeinformationen des Anrufers, um ein oder zwei Zuschüsse für den KMS-Schlüssel zu erstellen:
-
Zuschuss schreiben — Wird für jeden Job erstellt, der einen vom Kunden verwalteten Schlüssel spezifiziert. Ermöglicht dem Dienst, den Checkpoint des aktuellen Jobs und die temporären Daten, die während des Trainings auf der Plattform gespeichert wurden, zu verschlüsseln und zu entschlüsseln.
-
Read Grant — Wird nur für iterative Jobs erstellt, die vom Checkpoint eines vorherigen Jobs wieder aufgenommen werden, obwohl für den vorherigen Job ebenfalls ein vom Kunden verwalteter Schlüssel verwendet wurde. Ermöglicht dem Dienst, die Checkpoint-Daten des vorherigen Jobs zu entschlüsseln. Dieser Zuschuss erlaubt nur die Entschlüsselung und nicht das Schreiben neuer Daten.
Alle Grants werden automatisch zurückgezogen, wenn der Job abgeschlossen ist. Dadurch wird sichergestellt, dass der Service nach Ablauf des Job-Lebenszyklus keinen Zugriff mehr auf den Schlüssel hat.
-
-
Ausführungsrolle — Beim Speichern von Ausgabedaten (Modellartefakte, Checkpoints) in Ihrem Amazon S3 S3-Bucket verwendet Amazon SageMaker AI die von Ihnen angegebene Ausführungsrolle. Die Ausführungsrolle muss berechtigt sein, den KMS-Schlüssel für die Verschlüsselung und Entschlüsselung über Amazon S3 zu verwenden.
Während eines Trainingsjobs finden die folgenden AWS KMS Operationen statt:
-
kms:GenerateDataKey— Wird beim Schreiben verschlüsselter Ausgabedaten (Modellartefakte, Checkpoints und Logs) über Amazon S3 aufgerufen. -
kms:Decrypt— Wird über Amazon S3 aufgerufen, wenn verschlüsselte Eingabedaten oder zuvor geschriebene Ausgabedaten gelesen werden. -
kms:DescribeKey— Wird bei der Auftragserstellung von der Identität des Anrufers aufgerufen, um die Konfiguration und den Status des KMS-Schlüssels zu überprüfen. -
kms:CreateGrant— Wird bei der Auftragserstellung von der Identität des Anrufers aufgerufen, um dem Dienst die Erlaubnis zu erteilen, temporäre Daten für den gesamten Lebenszyklus des Auftrags auf der Plattform zu speichern.
Der Dienst speichert keine Datenschlüssel im Cache. Jeder Amazon S3 S3-Lese- oder Schreibvorgang wird AWS KMS unabhängig über die Amazon S3 S3-Serviceintegration aufgerufen.
Konfiguration eines vom Kunden verwalteten KMS-Schlüssels
Multi-turn RL-Jobs unterstützen nur symmetrische AWS KMS Schlüssel. Multi-region Schlüssel werden nicht unterstützt.
Konfiguration von Berechtigungen zur Verwendung eines vom Kunden verwalteten KMS-Schlüssels
Um einen vom Kunden verwalteten KMS-Schlüssel mit Multiturn-RL-Aufträgen zu verwenden, müssen Sie Berechtigungen sowohl für die IAM-Ausführungsrolle als auch für die KMS-Schlüsselrichtlinie konfigurieren.
Berechtigungen für die Ausführungsrolle
Die IAM-Ausführungsrolle, die Sie an die CreateJob API übergeben, muss über die folgenden Berechtigungen verfügen. AWS KMS Diese Berechtigungen ermöglichen es dem Trainingsjob, Ausgabedaten und Eingabedaten über Amazon S3 zu verschlüsseln.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSPermissionsForS3Encryption", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringLike": { "kms:ViaService": "s3.*.amazonaws.com" } } } ] }
-
kms:Decrypt— Erforderlich, um verschlüsselte Eingabedaten und zuvor geschriebene Ausgabedaten aus Amazon S3 zu lesen. -
kms:GenerateDataKey— Erforderlich, um in Amazon S3 geschriebene Ausgabedaten (Modellartefakte, Checkpoints) zu verschlüsseln.
Die kms:ViaService Bedingung beschränkt die Verwendung des Schlüssels auf Anfragen, die über Amazon S3 eingehen, wodurch verhindert wird, dass der Schlüssel für andere Zwecke verwendet wird.
KMS-Schlüsselrichtlinie
Die standardmäßige KMS-Schlüsselrichtlinie erlaubt es bereits IAM-Rollen desselben Kontos, den Schlüssel zu verwenden. Optional können Sie die folgende Anweisung hinzufügen, um den Zugriff weiter einzuschränken und nur der Ausführungsrolle zu erlauben, den Schlüssel über Amazon S3 zu verwenden:
{ "Sid": "AllowMTRLJobEncryption", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/SageMakerExecutionRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "s3.*.amazonaws.com" } } }
Damit der Aufrufer Grants erstellen und den Schlüssel beschreiben kann, fügen Sie der Schlüsselrichtlinie die folgende Anweisung hinzu:
{ "Sid": "AllowCreateGrantForCaller", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CallerRole" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "account-id" }, "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }
Erstellen eines Multiturn-RL-Jobs mit einem vom Kunden verwalteten KMS-Schlüssel
Um Ausgabedaten mit Ihrem vom Kunden verwalteten KMS-Schlüssel zu verschlüsseln, geben Sie den Schlüssel-ARN im KmsKeyArn Feld von OutputDataConfig in Ihrer CreateJob Anfrage an. Weitere Informationen finden Sie CreateJobin der SageMaker AI-API-Referenz.
Das folgende Beispiel zeigt, wie Sie einen KMS-Schlüssel angeben inOutputDataConfig:
{ "OutputDataConfig": { "S3OutputPath": "s3://your-bucket/output/", "KmsKeyArn": "arn:aws:kms:region:account-id:key/key-id" } }
Wenn Ihre Eingabedaten in Amazon S3 mit einem vom Kunden verwalteten Schlüssel (SSE-KMS) verschlüsselt sind, stellen Sie sicher, dass die Ausführungsrolle über die kms:Decrypt Berechtigung für diesen Schlüssel verfügt. Sie können denselben Schlüssel sowohl für die Eingabe- als auch für die Ausgabeverschlüsselung oder unterschiedliche Schlüssel verwenden.
Einschränkung des Zugriffs auf den vom Kunden verwalteten KMS-Schlüssel
Sie können die folgenden Mechanismen verwenden, um den Zugriff auf Ihren vom Kunden verwalteten KMS-Schlüssel einzuschränken:
- Sagemaker: Bedingungsschlüssel OutputKmsKeyArn
-
Verwenden Sie den
sagemaker:OutputKmsKeyArnBedingungsschlüssel in der IAM-Richtlinie des Aufrufers, um zu steuern, welcher KMS-Schlüssel für die Verschlüsselung der Jobausgabe angegeben werden kann. Auf diese Weise können Administratoren erzwingen, dass bei der Erstellung von Multiturn-RL-Jobs nur genehmigte Schlüssel verwendet werden. Die vollständige Liste der SageMaker KI-Bedingungsschlüssel finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für Amazon SageMaker AI."Condition": { "ArnEquals": { "sagemaker:OutputKmsKeyArn": "arn:aws:kms:region:account-id:key/key-id" } } - Schutz vor verwirrtem Stellvertreter
-
Verwenden Sie die
aws:SourceAccountBedingungsschlüsselaws:SourceArnoder in Ihrer KMS-Schlüsselrichtlinie, um das Problem mit dem verwirrten Stellvertreter zu vermeiden. Dadurch wird sichergestellt, dass nur Anfragen, die von Ihrem spezifischen Konto oder Ihrer Ressource stammen, den Schlüssel verwenden können."Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:region:account-id:job/*" } }
Verschlüsselungskontext für Multiturn-RL-Jobs
Wenn ein Multiturn-RL-Job Daten mit Ihrem vom Kunden verwalteten KMS-Schlüssel verschlüsselt, bezieht Amazon SageMaker AI in jede AWS KMS Anfrage, die über Amazon S3 gestellt wird, einen Verschlüsselungskontext mit ein. Ein Verschlüsselungskontext besteht aus einer Reihe von Schlüssel-Wert-Paaren, die zusätzliche authentifizierte Daten (AAD) für Operationen bereitstellen. AWS KMS Der Verschlüsselungskontext ist angemeldet AWS CloudTrail und kann in KMS-Schlüsselrichtlinien und Grant-Beschränkungen verwendet werden, um den Zugriff weiter einzuschränken.
Amazon SageMaker AI verwendet das folgende Schlüssel-Wert-Paar für den Verschlüsselungskontext für Multi-Turn-RL-Trainingsjobs:
{ "aws:sagemaker:finetuning-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFT/job-name" }
Für Multi-Turn-RL-Evaluierungsjobs verwendet der Verschlüsselungskontext:
{ "aws:sagemaker:agent-rft-evaluation-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFTEvaluation/job-name" }
Der Verschlüsselungskontext ist an den spezifischen Job gebunden, der die verschlüsselten Daten erstellt. Jeder Job verschlüsselt seine eigene Ausgabe mit seinem eigenen ARN im Verschlüsselungskontext. Dadurch wird eine kryptografische Bindung zwischen den verschlüsselten Daten und dem Job hergestellt, der sie erzeugt hat.
Verwendung des Verschlüsselungskontextes in wichtigen Richtlinien
Der Verschlüsselungskontext wird automatisch durch die Zuschussbeschränkungen durchgesetzt, die Amazon SageMaker AI bei der Schaffung von Arbeitsplätzen festlegt. Sie müssen Ihrer KMS-Schlüsselrichtlinie keine Bedingungen für den Verschlüsselungskontext hinzufügen, damit die Verschlüsselung ordnungsgemäß funktioniert.
Wenn Sie der kms:CreateGrant Aussage in Ihrer KMS-Schlüsselrichtlinie Bedingungen für den Verschlüsselungskontext hinzufügen, müssen Sie Zuschüsse sowohl für den aktuellen Job als auch für den vorherigen Job in iterativen Schulungsketten zulassen. Das folgende Beispiel ermöglicht Amazon SageMaker AI, Zuschüsse mit einem beliebigen ARN für Schulungsjobs im Verschlüsselungskontext zu erstellen:
{ "Sid": "AllowCreateGrantForCaller", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CallerRole" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com", "kms:EncryptionContext:aws:sagemaker:finetuning-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFT/*" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }
Anmerkung
Wenn Sie im Verschlüsselungskontext kms:CreateGrant auf einen einzelnen spezifischen Job-ARN beschränken, schlägt das iterative Training fehl, da Amazon SageMaker AI auch einen Read Grant mit dem ARN des vorherigen Jobs als Verschlüsselungskontext erstellt. Verwenden Sie ein Platzhaltermuster, um Zuschüsse für jeden Job in Ihrem Konto zuzulassen.
Verschlüsselungskontext im iterativen Training
Wenn Sie iterative Trainingsjobs ausführen (bei denen ein nachfolgender Job vom Checkpoint eines vorherigen Jobs aus wieder aufgenommen wird), enthält der Verschlüsselungskontext für jeden Job den eigenen ARN dieses Jobs. Amazon SageMaker AI verwaltet automatisch zwei AWS KMS Zuschüsse zur Unterstützung iterativer Schulungen:
-
Write Grant — Ermöglicht dem aktuellen Job, seine eigenen Checkpoint-Daten zu verschlüsseln, wobei der ARN des aktuellen Jobs als Verschlüsselungskontext verwendet wird.
-
Read Grant — Ermöglicht dem aktuellen Job, Checkpoint-Daten aus dem vorherigen Job zu entschlüsseln, wobei der ARN des vorherigen Jobs als Verschlüsselungskontext verwendet wird.
Beide Grants werden automatisch zurückgezogen, wenn der Job abgeschlossen ist. Sie müssen keine zusätzlichen wichtigen Richtlinienerklärungen hinzufügen, damit Sie iterative Schulungen durchführen können, um mit vom Kunden verwalteten Schlüsseln zu arbeiten.
Verschlüsselungskontext in AWS CloudTrail
Wenn Sie die CloudTrail Protokolle für AWS KMS API-Aufrufe überprüfen, die von Multiturn-RL-Jobs getätigt wurden, wird der Verschlüsselungskontext im requestParameters Feld des Protokolleintrags angezeigt. Anhand dieser Informationen können Sie feststellen, welcher Job einen bestimmten Verschlüsselungs- oder Entschlüsselungsvorgang für Ihre Daten durchgeführt hat.
Überwachung der Multiturn-RL-Interaktion mit AWS KMS
Sie können AWS CloudTrail es verwenden, um AWS KMS API-Aufrufe zu überwachen, die im Namen Ihrer Multiturn-RL-Jobs getätigt wurden. Die folgenden CloudTrail Ereignisnamen sind für die Überwachung der Verwendung von KMS-Schlüsseln relevant:
-
Decrypt— Wird protokolliert, wenn der Job verschlüsselte Daten aus Amazon S3 liest. -
GenerateDataKey— Wird protokolliert, wenn der Job verschlüsselte Daten auf Amazon S3 schreibt. -
CreateGrant— Wird protokolliert, wenn der Anrufer bei der Erstellung des Jobs einen Zuschuss erstellt. -
DescribeKey— Wird protokolliert, wenn der Job den KMS-Schlüssel für die Validierung beschreibt.
Suchen Sie in den CloudTrail Protokolleinträgen für diese Ereignisse nach den folgenden Werten:
-
Anfrage Parameters.granteePrincipal — Zeigt bei
CreateGrantEreignissen den Dienstleiter an, der den Zuschuss erhalten hat (job.sagemaker.amazonaws.com).
Weitere Informationen zum Protokollieren von AWS KMS API-Aufrufen finden Sie unter Protokollieren von AWS KMS API-Aufrufen mit AWS CloudTrail im AWS KMS Entwicklerhandbuch.