モデルカスタマイズジョブとアーティファクトの暗号化 - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

モデルカスタマイズジョブとアーティファクトの暗号化

Amazon Bedrock は、 CreateModelCustomizationJobアクションまたはコンソール でトレーニングデータを使用して、Amazon Bedrock モデルカスタマイズジョブを送信するの基本モデルの微調整されたバージョンであるカスタムモデルを作成します。カスタムモデルは によって管理および保存されます AWS。

Amazon Bedrock は、Amazon Bedrock 基盤モデルの微調整にのみ、ユーザーが提供する微調整データを使用します。Amazon Bedrock は、他の目的で微調整データを使用しません。トレーニングデータは、ベースTitanモデルのトレーニングやサードパーティーへの配布には使用されません。使用状況タイムスタンプ、ログに記録されたアカウント IDs、サービスによって記録されたその他の情報などのその他の使用状況データも、モデルのトレーニングには使用されません。

微調整ジョブが完了すると、微調整のために提供したトレーニングデータや検証データは Amazon Bedrock によって保存されません。

微調整されたモデルは、完了の生成中に微調整データの一部を再生できることに注意してください。アプリが微調整データをどのような形式でも公開しないようにするには、まずトレーニングデータから機密データを除外する必要があります。機密データを使用してカスタマイズしたモデルを誤って作成している場合は、そのカスタムモデルを削除し、トレーニングデータから機密情報を除外してから、新しいモデルを作成できます。

カスタムモデル (コピーされたモデルを含む) を暗号化するために、Amazon Bedrock には次の 2 つのオプションがあります。

  1. AWS 所有のキー – デフォルトでは、Amazon Bedrock はカスタムモデルを で暗号化します AWS 所有のキー。を表示、管理、使用したり AWS 所有のキー、その使用を監査したりすることはできません。ただし、データを暗号化するキーを保護するために何か行動を起こしたり、プログラムを変更したりする必要はありません。詳細については、「AWS Key Management Service デベロッパーガイド」の 「AWS 所有のキー」を参照してください。

  2. カスタマーマネージドキー – 自分で管理するカスタマーマネージドキーを使用してカスタムモデルを暗号化できます。の詳細については AWS KMS keys、「 AWS Key Management Service デベロッパーガイド」の「カスタマーマネージドキー」を参照してください。

注記

Amazon Bedrock は、 を使用して保管時の暗号化を無償 AWS 所有のキー で自動的に有効にします。カスタマーマネージドキーを使用する場合、 AWS KMS 料金が適用されます。料金の詳細については、「AWS Key Management Service の料金」を参照してください。

の詳細については AWS KMS、「 AWS Key Management Service デベロッパーガイド」を参照してください。

Amazon Bedrock が で許可を使用する方法 AWS KMS

モデルカスタマイズジョブまたはモデルコピージョブのカスタムモデルを暗号化するカスタマーマネージドキーを指定すると、Amazon Bedrock は にCreateGrantリクエストを送信して、ユーザーに代わってカスタムモデルに関連付けられたプライマリKMS許可を作成します AWS KMS。この権限により、Amazon Bedrock はカスタマーマネージドキーにアクセスして使用できます。の許可 AWS KMS は、Amazon Bedrock にお客様のアカウントのKMSキーへのアクセスを許可するために使用されます。

Amazon Bedrock では、以下の内部オペレーションでカスタマーマネージドキーを使用するには、プライマリ権限が必要です。

  • DescribeKey リクエストを に送信 AWS KMS して、ジョブの作成時に入力した対称カスタマーマネージドKMSキー ID が有効であることを確認します。

  • にリクエストを送信GenerateDataKeyおよび復号化 AWS KMS して、カスタマーマネージドキーによって暗号化されたデータキーを生成し、暗号化されたデータキーを復号化して、モデルアーティファクトの暗号化に使用できます。

  • モデルカスタマイズAWSKMS、モデルコピー、またはプロビジョンドスループット作成の非同期実行のためにGenerateDataKey、上記のオペレーション (DescribeKey、、Decrypt) のサブセットを使用してスコープダウンされたセカンダリ許可を作成するCreateGrantリクエストを に送信します。

  • Amazon Bedrock は、グラントの作成時に廃止プリンシパルを指定し、サービスがRetireGrantリクエストを送信できるようにします。

カスタマーマネージド AWS KMS キーへのフルアクセスがあります。許可へのアクセスを取り消すには、「 AWS Key Management Service デベロッパーガイド」の「許可の廃止と取り消し」のステップに従います。または、キーポリシー を変更することで、カスタマーマネージドキーへのサービスのアクセスをいつでも削除できます。これを行うと、Amazon Bedrock はキーで暗号化されたカスタムモデルにアクセスできなくなります。

カスタムモデルのプライマリ付与とセカンダリ付与のライフサイクル

  • プライマリ許可の有効期間は長く、関連するカスタムモデルがまだ使用されている限り、アクティブのままです。カスタムモデルが削除されると、対応するプライマリ許可は自動的に廃止されます。

  • セカンダリグラントは有効期間が短くなります。Amazon Bedrock がお客様に代わって実行するオペレーションが完了するとすぐに、それらは自動的に廃止されます。例えば、モデルコピージョブが完了すると、Amazon Bedrock がコピーされたカスタムモデルを暗号化することを許可したセカンダリ許可は直ちに廃止されます。

カスタマーマネージドキーを作成する方法と、キーポリシーをアタッチする方法を理解する

作成して管理するキーを使用して AWS リソースを暗号化するには、以下の一般的なステップを実行します。

  1. (前提条件) IAMロールに CreateKeyアクションのアクセス許可があることを確認します。

  2. 「キーの作成」の手順に従って、 AWS KMS コンソールまたは CreateKeyオペレーションを使用してカスタマーマネージドキーを作成します。

  3. キーの作成は、キーの使用を必要とするオペレーションに使用できるキーArnの を返します (モデルカスタマイズジョブを送信するときやモデル推論を実行するときなど)。

  4. 必要なアクセス許可を持つキーポリシーを作成してキーにアタッチします。キーポリシーを作成するには、「 AWS Key Management Service デベロッパーガイド」の「キーポリシーの作成」の手順に従います。

カスタムモデルとコピーされたモデルのアクセス許可とキーポリシー

KMS キーを作成したら、キーポリシーをアタッチします。キーポリシーは、カスタマーマネージドキーにアタッチしてアクセスを制御するリソースベースのポリシーです。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。カスタマーマネージドキーを作成する際に、キーポリシーを指定することができます。キーポリシーはいつでも変更できますが、変更が 全体で利用可能になるまでに少し時間がかかる場合があります AWS KMS。詳細については、AWS Key Management Service デベロッパーガイド の「カスタマーマネージドキーへのアクセスの管理」を参照してください。

カスタムモデルとコピーされたモデルを暗号化するキーには、次のKMSアクションが使用されます。

  1. kms:CreateGrant – Amazon Bedrock サービスプリンシパルに付与オペレーション を通じて指定されたキーへのアクセスを許可することで、カスタマーマネージドKMSキーの付与を作成します。 https://docs.aws.amazon.com/kms/latest/developerguide/grants.html#terms-grant-operations権限の詳細については、「 AWS Key Management Service デベロッパーガイド」の「 の権限 AWS KMS」を参照してください。

    注記

    また、Amazon Bedrock は廃止プリンシパルを設定し、不要になったグラントを自動的に廃止します。

  2. kms:DescribeKey — Amazon Bedrock がキーを検証できるように、カスタマーマネージドキーの詳細を提供します。

  3. kms:GenerateDataKey — Amazon Bedrock がユーザーアクセスを検証できるようにするカスタマーマネージドキーの詳細を提供します。Amazon Bedrock は、生成された暗号文をカスタムモデルとともに保存し、カスタムモデルユーザーに対する追加の検証チェックとして使用します。

  4. kms:Decrypt – 保存された暗号文を復号して、ロールがカスタムモデルを暗号化するKMSキーに適切にアクセスできることを確認します。

セキュリティのベストプラクティスとして、kms:ViaService 条件キーを含めて、キーへのアクセスを Amazon Bedrock サービスに制限することをお勧めします。

キーにアタッチできるキーポリシーは 1 つだけですが、ポリシーの Statementフィールドのリストにステーメントを追加することで、キーポリシーに複数のステートメントをアタッチできます。

次のステートメントは、カスタムモデルとコピーされたモデルの暗号化に関連しています。

カスタマーマネージドキーを使用してカスタムモデルまたはコピーされたモデルを暗号化するには、次のステートメントをキーポリシーに含めて、モデルの暗号化を許可します。Principal フィールドに、キーの暗号化と復号を許可するアカウントを、AWSサブフィールドがマッピングされるリストに追加します。kms:ViaService 条件キーを使用する場合は、リージョンごとに行を追加するか、 を使用できます。* の代わりに ${region} は、Amazon Bedrock をサポートするすべてのリージョンを許可します。

{ "Sid": "PermissionsEncryptDecryptModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } }

KMS キーで暗号化されたモデルへのアクセスを許可するには、キーポリシーに次のステートメントを含めて、キーの復号化を許可します。Principal フィールドに、キーの復号を許可するアカウントを、AWSサブフィールドがマッピングされるリストに追加します。kms:ViaService 条件キーを使用する場合は、リージョンごとに行を追加するか、 を使用できます。* の代わりに ${region} は、Amazon Bedrock をサポートするすべてのリージョンを許可します。

{ "Sid": "PermissionsDecryptModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } }

作成する必要があるキーポリシーについては、ユースケースに対応するセクションを展開してください。

KMS キーでカスタマイズしたモデルを暗号化する場合、キーのキーポリシーはユースケースによって異なります。ユースケースに対応するセクションを展開します。

カスタムモデルを呼び出すロールがモデルをカスタマイズするロールと同じ場合、必要なのは からの ステートメントのみですモデルの暗号化。次のポリシーテンプレートの Principalフィールドで、カスタムモデルをカスタマイズして呼び出すことを許可するアカウントを、AWSサブフィールドがマッピングするリストに追加します。

{ "Version": "2012-10-17", "Id": "PermissionsCustomModelKey", "Statement": [ { "Sid": "PermissionsEncryptCustomModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } } ] }

カスタムモデルを呼び出すロールがモデルをカスタマイズするロールと異なる場合は、 モデルの暗号化と の両方のステートメントが必要です暗号化されたモデルへのアクセスを許可する。次のポリシーテンプレートのステートメントを次のように変更します。

  1. 最初のステートメントでは、キーの暗号化と復号を許可します。Principal フィールドに、カスタムモデルをカスタマイズすることを許可するアカウントを、AWSサブフィールドがマッピングするリストに追加します。

  2. 2 番目のステートメントでは、キーの復号のみを許可します。Principal フィールドで、 がカスタムモデルを呼び出すことのみを許可するアカウントを、AWSサブフィールドがマッピングされるリストに追加します。

{ "Version": "2012-10-17", "Id": "PermissionsCustomModelKey", "Statement": [ { "Sid": "PermissionsEncryptCustomModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } }, { "Sid": "PermissionsDecryptModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } } ] }

所有しているモデルや共有されているモデルをコピーする場合、最大 2 つのキーポリシーを管理する必要がある場合があります。

KMS キーを使用してコピーされたモデルを暗号化する場合、キーのキーポリシーはユースケースによって異なります。ユースケースに対応するセクションを展開します。

コピーされたモデルを呼び出すロールがモデルコピーを作成するロールと同じ場合、必要なのは からの ステートメントのみですモデルの暗号化。次のポリシーテンプレートの Principalフィールドで、コピーしたモデルをコピーして呼び出すことを許可するアカウントを、AWSサブフィールドがマッピングするリストに追加します。

{ "Version": "2012-10-17", "Id": "PermissionsCopiedModelKey", "Statement": [ { "Sid": "PermissionsEncryptCopiedModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } } ] }

コピーされたモデルを呼び出すロールがモデルコピーを作成するロールと異なる場合は、 モデルの暗号化と の両方のステートメントが必要です暗号化されたモデルへのアクセスを許可する。次のポリシーテンプレートのステートメントを次のように変更します。

  1. 最初のステートメントでは、キーの暗号化と復号を許可します。Principal フィールドに、コピーしたモデルの作成を許可するアカウントを、AWSサブフィールドがマッピングするリストに追加します。

  2. 2 番目のステートメントでは、キーの復号のみを許可します。Principal フィールドに、コピーしたモデルを呼び出すことのみを許可するアカウントを、AWSサブフィールドがマッピングするリストに追加します。

{ "Version": "2012-10-17", "Id": "PermissionsCopiedModelKey", "Statement": [ { "Sid": "PermissionsEncryptCopiedModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } }, { "Sid": "PermissionsDecryptCopiedModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } } ] }

コピーするソースモデルがKMSキーで暗号化されている場合は、ソースモデルを暗号化するキーのキーポリシー暗号化されたモデルへのアクセスを許可するに ステートメントをアタッチします。このスタント化により、モデルコピーロールはソースモデルを暗号化するキーを復号化できます。次のポリシーテンプレートの Principalフィールドに、ソースモデルのコピーを許可するアカウントを、AWSサブフィールドがマッピングするリストに追加します。

{ "Version": "2012-10-17", "Id": "PermissionsSourceModelKey", "Statement": [ { "Sid": "PermissionsDecryptModel", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::${account-id}:user/${role}" ] }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "bedrock.${region}.amazonaws.com" ] } } } ] }

Amazon Bedrock サービスの暗号化キーをモニタリングする

Amazon Bedrock リソースで AWS KMS カスタマーマネージドキーを使用する場合、 AWS CloudTrailまたは Amazon CloudWatch Logs を使用して、Amazon Bedrock が に送信するリクエストを追跡できます AWS KMS。

以下は、 が Amazon Bedrock によって呼び出されたKMSオペレーションをCreateGrantモニタリングしてプライマリ許可を作成するための AWS CloudTrail イベントの例です。

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:SampleUser01", "arn": "arn:aws:sts::111122223333:assumed-role/RoleForModelCopy/SampleUser01", "accountId": "111122223333", "accessKeyId": "EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/RoleForModelCopy", "accountId": "111122223333", "userName": "RoleForModelCopy" }, "attributes": { "creationDate": "2024-05-07T21:46:28Z", "mfaAuthenticated": "false" } }, "invokedBy": "bedrock.amazonaws.com" }, "eventTime": "2024-05-07T21:49:44Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "bedrock.amazonaws.com", "userAgent": "bedrock.amazonaws.com", "requestParameters": { "granteePrincipal": "bedrock.amazonaws.com", "retiringPrincipal": "bedrock.amazonaws.com", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "operations": [ "Decrypt", "CreateGrant", "GenerateDataKey", "DescribeKey" ] }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

トレーニング、検証、出力データの暗号化

Amazon Bedrock を使用してモデルカスタマイズジョブを実行する場合は、入力ファイルを Amazon S3 バケットに保存します。ジョブが完了すると、Amazon Bedrock はジョブの作成時に指定した S3 バケットに出力メトリクスファイルを保存し、結果のカスタムモデルアーティファクトは によって制御される S3 バケットに保存します AWS。

出力ファイルは S3 バケットの暗号化設定で暗号化されます。これらは、SSE-S3 バケットの設定方法に応じて、-S3 サーバー側の暗号化 または AWS KMS SSE-KMS 暗号化 で暗号化されます。 S3