翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
モデルのカスタマイズを開始する前に、Amazon Bedrock が必要とするアクセスの種類を理解し、カスタマイズジョブとアーティファクトを保護するためのオプションを検討してください。
モデルカスタマイズ用の IAM サービスロールを作成する
Amazon Bedrock には、モデルのカスタマイズトレーニングと検証データを保存する S3 バケットにアクセスするための AWS Identity and Access Management (IAM) サービスロールが必要です。これを行うには、いくつかの方法があります。
-
を使用してサービスロールを自動的に作成します AWS Management Console。
-
S3 バケットにアクセスするための適切なアクセス許可を持つサービスロールを手動で作成します。
手動オプションの場合は、AWS 「 サービスにアクセス許可を委任するロールの作成」の手順に従って、IAM ロールを作成し、次のアクセス許可をアタッチします。
-
信頼関係
-
S3 のトレーニングデータや検証データにアクセスし、出力データを S3 書き込むアクセス許可
-
(オプション) 以下のリソースを KMS キーで暗号化する場合、キーを復号化するアクセス許可 (「モデルのカスタマイズジョブとアーティファクトの暗号化」を参照)
-
モデルカスタマイズジョブ、または生成されたカスタムモデル
-
モデルカスタマイズジョブ用のトレーニング、検証、または出力データ
-
信頼関係
以下のポリシーでは、Amazon Bedrock がこのロールを引き受け、モデルカスタマイズジョブを実行できます。使用するポリシーの例を下記に示します。
Condition
フィールドで 1 つ以上のグローバル条件コンテキストキーを使用することで、必要に応じて、サービス間の混乱した使節を回避するためのアクセス許可の範囲を制限できます。詳細については、「AWS グローバル条件コンテキストキー」を参照してください。
-
aws:SourceAccount
の値をアカウント ID に設定します。 -
(オプション)
ArnEquals
またはArnLike
条件を使用して、アカウント ID の特定のモデルカスタムジョブの範囲を制限します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "bedrock.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "account-id
"
},
"ArnEquals": {
"aws:SourceArn": "arn:aws:bedrock:us-east-1:account-id
:model-customization-job/*"
}
}
}
]
}
S3 のトレーニングファイルや検証ファイルにアクセスし、出力ファイルを書き込むアクセス許可
次のポリシーをアタッチして、ロールがトレーニングデータと検証データ、および出力データを書き込むバケットにアクセスできるようにします。Resource
リスト内の値を実際のバケット名に置き換えます。
バケット内の特定のフォルダへのアクセスを制限するには、フォルダパスに s3:prefix
条件キーを追加します。「例 2:特定のプレフィックス付きバケットのオブジェクトリストを取得する」のユーザーポリシー例に従います。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::training-bucket
",
"arn:aws:s3:::training-bucket/*
",
"arn:aws:s3:::validation-bucket
",
"arn:aws:s3:::validation-bucket/*
"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::output-bucket
",
"arn:aws:s3:::output-bucket/*
"
]
}
]
}
(オプション) モデルカスタマイズジョブとアーティファクトを暗号化する
カスタムモデルに対して行われた入出力データ、カスタマイズジョブ、または推論リクエストを暗号化します。詳細については、「モデルのカスタマイズジョブとアーティファクトの暗号化」を参照してください。
(オプション) VPC を使用してモデルカスタマイズジョブを保護する
モデルカスタマイズジョブを実行すると、ジョブは Amazon S3 バケットにアクセスすることで、入力データをダウンロードしてジョブメトリクスをアップロードします。データへのアクセスを制御するには、Amazon VPC で仮想プライベートクラウド (VPC) を使用することをお勧めします。データをインターネット経由で利用できないように VPC を設定し、代わりに AWS PrivateLink で VPC インターフェイスエンドポイントを作成してデータへのプライベート接続を確立することで、データをさらに保護することができます。Amazon VPC と Amazon Bedrock AWS PrivateLink の統合方法の詳細については、「」を参照してくださいAmazon VPC と を使用してデータを保護する AWS PrivateLink。
モデルカスタマイズジョブのトレーニング、検証、出力データに VPC を設定して使用するには、次のステップを実行します。
トピック
モデルのカスタマイズ中にデータを保護するために VPC を設定する
VPC を設定するには、「VPC をセットアップする」の手順に従います。「(例) VPC を使用して Amazon S3 データへのデータアクセスを制限する」の手順に従って、S3 の VPC エンドポイントを設定し、リソースベースの IAM ポリシーを使用してモデルのカスタムデータを含む S3 バケットへのアクセスを制限することで、VPC をさらに保護することができます。
モデルのカスタマイズロールに VPC アクセス許可をアタッチする
VPC のセットアップが完了したら、次のアクセス許可をモデルのカスタマイズサービスロールにアタッチして、VPC へのアクセスを許可します。このポリシーを変更して、ジョブに必要な VPC リソースのみへのアクセスを許可します。${{subnet-ids}}
と security-group-id
を VPC からの値で置き換えます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeNetworkInterfaces",
"ec2:DescribeVpcs",
"ec2:DescribeDhcpOptions",
"ec2:DescribeSubnets",
"ec2:DescribeSecurityGroups"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface"
],
"Resource":[
"arn:aws:ec2:${{region}}
:${{account-id}}
:network-interface/*"
],
"Condition": {
"StringEquals": {
"aws:RequestTag/BedrockManaged": ["true"]
},
"ArnEquals": {
"aws:RequestTag/BedrockModelCustomizationJobArn": ["arn:aws:bedrock:${{region}}
:${{account-id}}
:model-customization-job/*"]
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface"
],
"Resource":[
"arn:aws:ec2:${{region}}
:${{account-id}}
:subnet/${{subnet-id}}
",
"arn:aws:ec2:${{region}}
:${{account-id}}
:subnet/${{subnet-id2}}
",
"arn:aws:ec2:${{region}}
:${{account-id}}
:security-group/security-group-id
"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterfacePermission",
"ec2:DeleteNetworkInterface",
"ec2:DeleteNetworkInterfacePermission"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"ec2:Subnet": [
"arn:aws:ec2:${{region}}
:${{account-id}}
:subnet/${{subnet-id}}
",
"arn:aws:ec2:${{region}}
:${{account-id}}
:subnet/${{subnet-id2}}
"
],
"ec2:ResourceTag/BedrockModelCustomizationJobArn": ["arn:aws:bedrock:${{region}}
:${{account-id}}
:model-customization-job/*"]
},
"StringEquals": {
"ec2:ResourceTag/BedrockManaged": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": "arn:aws:ec2:${{region}}
:${{account-id}}
:network-interface/*",
"Condition": {
"StringEquals": {
"ec2:CreateAction": [
"CreateNetworkInterface"
]
},
"ForAllValues:StringEquals": {
"aws:TagKeys": [
"BedrockManaged",
"BedrockModelCustomizationJobArn"
]
}
}
}
]
}
モデルのカスタマイズジョブを送信するときに VPC 設定を追加する
これまでのセクションの手順に従って VPC および必要なロールとアクセス許可を設定し終わったら、この VPC を使用するモデルカスタマイズジョブを作成することができます。
ジョブの VPC サブネットとセキュリティグループを指定すると、Amazon Bedrock はサブネットの 1 つのセキュリティグループに関連付けられた Elastic Network Interface (ENI) を作成します。ENI により、Amazon Bedrock ジョブは VPC 内のリソースに接続できます。ENI については、「Amazon VPC ユーザーガイド」の「Elastic Network Interfaces」を参照してください。Amazon Bedrock は、作成した ENI に BedrockManaged
および BedrockModelCustomizationJobArn
タグを付けます。
アベイラビリティーゾーンごとに少なくとも 1 つのサブネットを指定することをお勧めします。
セキュリティグループを使用すると、VPC リソースへの Amazon Bedrock のアクセスを制御するためのルールを設定できます。
使用する VPC の設定は、コンソールまたは API 経由のいずれでも行うことができます。任意の方法のタブを選択し、ステップに従います。
Amazon Bedrock コンソールでは、モデルカスタマイズジョブを作成するときに、オプションの [VPC の設定] セクションで VPC サブネットとセキュリティグループを指定します。ジョブの設定に関する詳細は、「モデルのカスタマイズジョブを送信して、微調整または事前トレーニングを継続する」を参照してください。
注記
VPC 設定を含むジョブの場合、コンソールはサービスロールを自動的に作成することはできません。「Create a service role for model customization」のガイダンスに従って、カスタムロールを作成します。