翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Bedrock は、CreateModelCustomizationJob アクションまたはコンソールでトレーニングデータを使用して、Amazon Bedrock の基盤モデルをファインチューニングしたカスタムモデルを作成します。カスタムモデルは によって管理および保存されます AWS。
Amazon Bedrock では、お客様から提供されたファインチューニングデータを Amazon Bedrock 基盤モデルのファインチューニングにのみ使用します。Amazon Bedrock は、ファインチューニングモデルを他の目的に使用することはありません。トレーニングデータは、Titan の基盤モデルのトレーニングに使用されたり、第三者に配布されたりすることはありません。使用状況のタイムスタンプや記録されたアカウント ID など、サービスによって記録されたその他の使用状況データ・情報も、モデルのトレーニングには使用されません。
ファインチューニングジョブが完了すると、ファインチューニングのために提供されたトレーニングデータまたは検証データは Amazon Bedrock に保存されません。
ファインチューニング済みモデルでは、生成の完了中にファインチューニングデータの一部をリプレイできます。どのような形式でも、アプリによってファインチューニングデータが公開されない場合、まずトレーニングデータから機密データを除外する必要があります。誤って機密データを使用してカスタマイズ済みモデルを既に作成している場合は、そのカスタムモデルを削除し、トレーニングデータから機密情報を除外してから、新しいモデルを作成します。
カスタムモデル (コピーされたモデルを含む) を暗号化するため、Amazon Bedrock には 2 つのオプションがあります。
-
AWS 所有のキー – デフォルトでは、Amazon Bedrock はカスタムモデルを で暗号化します AWS 所有のキー。表示、管理、使用 AWS 所有のキー、またはそれらの使用を監査することはできません。ただし、データを暗号化するキーを保護するために何か行動を起こしたり、プログラムを変更したりする必要はありません。詳細については、「AWS Key Management Service デベロッパーガイド」の 「AWS 所有のキー」を参照してください。
-
カスタマーマネージドキー – 自分で管理するカスタマーマネージドキーを使用してカスタムモデルを暗号化できます。詳細については 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 リクエストを AWS KMSに送信して、カスタムモデルに関連付けられたプライマリ KMS グラントをユーザーに代わって作成します。このグラントにより、Amazon Bedrock はカスタマーマネージドキーにアクセスして使用できます。の許可 AWS KMS は、Amazon Bedrock にお客様のアカウントの KMS キーへのアクセスを許可するために使用されます。
このプライマリグラントは、Amazon Bedrock が、以下の内部オペレーションでカスタマーマネージドキーを使用するために必要です。
-
DescribeKey リクエストを に送信 AWS KMS して、ジョブの作成時に入力した対称カスタマーマネージド KMS キー ID が有効であることを確認します。
-
GenerateDataKey および Decrypt リクエストを に送信 AWS KMS して、カスタマーマネージドキーによって暗号化されたデータキーを生成し、暗号化されたデータキーを復号して、モデルアーティファクトの暗号化に使用できます。
-
CreateGrant リクエストを に送信 AWS KMS して、モデルカスタマイズ
DescribeKey
、モデルコピー、またはプロビジョンドスループット作成の非同期実行のためにGenerateDataKey
、上記のオペレーション (、、Decrypt
) のサブセットを使用してスコープダウンされたセカンダリ許可を作成します。 -
Amazon Bedrock は、サービスにより RetireGrant リクエストが送信されるように、グラントの作成中に廃止するプリンシパルを指定する。
カスタマーマネージド AWS KMS キーへのフルアクセスがあります。グラントへのアクセスを取り消すには、AWS Key Management Service デベロッパーガイドの「Retiring and revoking grants」の手順に従います。または、キーポリシーを変更して、いつでもカスタマーマネージドキーへのサービスのアクセスを削除できます。これを行うと、Amazon Bedrock はお客様のキーで暗号化されたカスタムモデルにアクセスできなくなります。
カスタムモデルのプライマリグラントとセカンダリグラントのライフサイクル
-
プライマリグラントの有効期間は長く、関連するカスタムモデルがまだ使用されている限り、アクティブのままです。カスタムモデルが削除されると、対応するプライマリグラントは自動的に廃止されます。
-
セカンダリグラントは、有効期間が短く、Amazon Bedrock が顧客に代わって実行するオペレーションが完了するとすぐに自動的に廃止されます。例えば、モデルコピージョブが完了すると、Amazon Bedrock にコピーされたカスタムモデルを暗号化することを許可したセカンダリグラントは、すぐに廃止されます。
カスタマーマネージドキーを作成する方法と、キーポリシーをアタッチする方法について
作成して管理するキーを使用して AWS リソースを暗号化するには、以下の一般的なステップを実行します。
-
(前提条件) IAM ロールに CreateKey アクションのアクセス権があることを確認します。
-
「キーの作成」の手順に従って、 AWS KMS コンソールまたは CreateKey オペレーションを使用してカスタマーマネージドキーを作成します。
-
キーの作成は、キーの使用を必要とするオペレーション (モデルのカスタマイズジョブの送信時やモデルの推論の実行時など) に使用できるキーに対して
Arn
を返します。 -
必要なアクセス権を持つキーポリシーを作成してキーにアタッチします。キーポリシーを作成するには、「 AWS Key Management Service デベロッパーガイド」の「キーポリシーの作成」のステップに従います。
カスタムモデルとコピーされたモデルのアクセス権とキーポリシー
KMS キーを作成したら、キーポリシーをアタッチします。キーポリシーとは、カスタマーマネージドキーにアタッチしてアクセスを制御するリソースベースのポリシーです。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。カスタマーマネージドキーを作成する際に、キーポリシーを指定することができます。キーポリシーはいつでも変更できますが、 AWS KMS全体に変更が反映されるまで、多少時間がかかる場合があります。詳細については、AWS Key Management Service デベロッパーガイドの「Managing access to customer managed keys」を参照してください。
カスタムモデルとコピーされたモデルを暗号化するキーには、次の KMS アクションが使用されます。
-
kms:CreateGrant – 指定された KMS キーへのグラントオペレーションによるアクセスを Amazon Bedrock サービスプリンシパルに許可して、カスタマーマネージドキーのグラントを作成します。グラントの詳細については、AWS Key Management Service デベロッパーガイドの「Grants in AWS KMS」を参照してください。
注記
また、Amazon Bedrock では廃止プリンシパルを設定し、不要になったグラントを自動的に廃止します。
-
kms:DescribeKey – カスタマーマネージドキーの詳細情報を提供して、Amazon Bedrock にキーの検証を許可します。
-
kms:GenerateDataKey – カスタマーマネージドキーの詳細情報を提供して、Amazon Bedrock にユーザーアクセスの検証を許可します。Amazon Bedrock は、生成された暗号文をカスタムモデルとともに保存し、カスタムモデルユーザーに対する追加の検証チェックとして使用します。
-
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}
:role/${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}
:role/${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}
:role/${role}
"
]
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:DescribeKey",
"kms:CreateGrant"
],
"Resource": "*",
"Condition": {
"StringLike": {
"kms:ViaService": [
"bedrock.${region}
.amazonaws.com"
]
}
}
}
]
}
カスタムモデルを呼び出すロールが、モデルをカスタマイズするロールと異なる場合は、モデルを暗号化する と 暗号化されたモデルへのアクセスを許可する からの両方のステートメントが必要です。次のポリシーテンプレートのステートメントを次のように変更します。
-
最初のステートメントでは、キーの暗号化と復号を許可します。
Principal
フィールドで、カスタムモデルをカスタマイズするアカウントを、AWS
サブフィールドがマッピングされるリストに追加します。 -
2 番目のステートメントでは、キーの復号のみが許可されます。
Principal
フィールドで、カスタムモデルを呼び出すことのみを許可するアカウントを、AWS
サブフィールドがマッピングされるリストに追加します。
{
"Version": "2012-10-17",
"Id": "PermissionsCustomModelKey
",
"Statement": [
{
"Sid": "PermissionsEncryptCustomModel",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::${account-id}
:role/${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}
:role/${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}
:role/${role}
"
]
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:DescribeKey",
"kms:CreateGrant"
],
"Resource": "*",
"Condition": {
"StringLike": {
"kms:ViaService": [
"bedrock.${region}
.amazonaws.com"
]
}
}
}
]
}
コピーされたモデルを呼び出すロールが、モデルコピーを作成するロールと異なる場合は、モデルを暗号化する と 暗号化されたモデルへのアクセスを許可する からの両方のステートメントが必要です。次のポリシーテンプレートのステートメントを次のように変更します。
-
最初のステートメントでは、キーの暗号化と復号を許可します。
Principal
フィールドで、コピーしたモデルの作成を許可するアカウントを、AWS
サブフィールドがマッピングされるリストに追加します。 -
2 番目のステートメントでは、キーの復号のみが許可されます。
Principal
フィールドで、コピーしたモデルを呼び出すことのみを許可するアカウントを、AWS
サブフィールドがマッピングされるリストに追加します。
{
"Version": "2012-10-17",
"Id": "PermissionsCopiedModelKey
",
"Statement": [
{
"Sid": "PermissionsEncryptCopiedModel",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::${account-id}
:role/${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}
:role/${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}
:role/${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。
以下は、CreateGrant が Amazon Bedrock によって呼び出される KMS オペレーションをモニタリングしてプライマリグラントを作成する 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 バケットの暗号化設定で暗号化されます。これらは、S3 バケットの設定方法に応じて、SSE-S3 サーバー側の暗号化または AWS KMS SSE-KMS 暗号化で暗号化されます。