

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

# 前提条件
<a name="model-customize-open-weight-prereq"></a>

開始する前に、次の前提条件を完了します。
+ Studio へのアクセス許可を使用して SageMaker AI ドメインにオンボードします。Studio をドメインのデフォルトエクスペリエンスとして設定するアクセス許可がない場合は、管理者にお問い合わせください。詳細については、[Amazon SageMakerドメインの概要](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html)」を参照してください。
+ [現在の AWS CLI バージョンのインストール](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled)の AWS CLI 手順に従って、 を更新します。
+ ローカルマシンから を実行し`aws configure`、 AWS 認証情報を指定します。 AWS 認証情報の詳細については、[AWS 「認証情報の理解と取得](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html)」を参照してください。

## 必要な IAM 許可
<a name="model-customize-open-weight-iam"></a>

SageMaker AI モデルのカスタマイズでは、SageMaker AI 実行ロールに適切なアクセス許可を追加する必要があります。

### コンソールを使用したアクセス許可の設定
<a name="model-customize-open-weight-iam-console"></a>

コンソールを使用して SageMaker AI ドメインを作成する場合、モデルカスタマイズのアクセス許可は、セットアップ方法に応じて自動的に処理されます。
+ **クイックセットアップ** — モデルカスタマイズのアクセス許可はデフォルトで含まれています。追加の設定は必要ありません。
+ **カスタムセットアップ** — 実行ロールを設定するときに**モデルカスタマイズ** ML アクティビティを選択します。ML アクティビティとそれらが付与するアクセス許可の詳細については、[「IAM ロールの ML アクティビティを設定する](https://docs.aws.amazon.com/sagemaker/latest/dg/role-manager-ml-activities.html)」を参照してください。

### アクセス許可を手動で設定する
<a name="model-customize-open-weight-iam-manual"></a>

 AWS CLI、SDK、または CloudFormation を使用してドメインをセットアップする場合、または既存の実行ロールにモデルカスタマイズ許可を追加する必要がある場合は、次のいずれかのオプションを使用します。

**オプション 1 (推奨): AWS 管理ポリシーをアタッチする**

`AmazonSageMakerModelCustomizationCoreAccess` マネージドポリシーを SageMaker AI 実行ロールにアタッチします。このポリシーは、サーバーレストレーニング、カスタム報酬関数 RL、モデル評価、SageMaker AI または Bedrock エンドポイントへのデプロイなど、基本的なモデルカスタマイズに必要なすべてのアクセス許可を対象としています。ポリシーのアタッチの詳細については、[「 Identity and Access Management ユーザーガイド」の「IAM ID アクセス許可の追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。 *AWS *

**オプション 2: インラインポリシーを作成する**

アクセス許可を手動で管理する場合は、次の JSON を使用してインラインポリシーを作成し、実行ロールにアタッチします。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SageMakerPublicHubPermissions",
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListHubContents"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:aws:hub/SageMakerPublicHub"
            ]
        },
        {
            "Sid": "SageMakerHubPermissions",
            "Effect": "Allow",
            "Action": [
                "sagemaker:ImportHubContent",
                "sagemaker:ListHubs",
                "sagemaker:ListHubContents",
                "sagemaker:ListHubContentVersions",
                "sagemaker:DescribeHubContent",
                "sagemaker:DeleteHubContent"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:*:hub/*",
                "arn:aws:sagemaker:*:*:hub-content/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "JumpStartS3Access",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::jumpstart*"
            ]
        },
        {
            "Sid": "SageMakerTrainingJob",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateTrainingJob",
                "sagemaker:DescribeTrainingJob",
                "sagemaker:ListTrainingJobs",
                "sagemaker:StopTrainingJob"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:*:training-job/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "SageMakerMLFlow",
            "Effect": "Allow",
            "Action": [
                "sagemaker:UpdateMlflowApp",
                "sagemaker:DescribeMlflowApp",
                "sagemaker:CreatePresignedMlflowAppUrl",
                "sagemaker:CallMlflowAppApi",
                "sagemaker-mlflow:AccessUI",
                "sagemaker-mlflow:GetExperiment",
                "sagemaker-mlflow:GetExperimentByName",
                "sagemaker-mlflow:GetRun",
                "sagemaker-mlflow:GetMetricHistory",
                "sagemaker-mlflow:GetLoggedModel",
                "sagemaker-mlflow:SearchExperiments",
                "sagemaker-mlflow:SearchRuns",
                "sagemaker-mlflow:ListArtifacts",
                "sagemaker-mlflow:CreateExperiment",
                "sagemaker-mlflow:CreateRun",
                "sagemaker-mlflow:LogBatch",
                "sagemaker-mlflow:LogMetric",
                "sagemaker-mlflow:LogParam",
                "sagemaker-mlflow:LogModel",
                "sagemaker-mlflow:LogInputs",
                "sagemaker-mlflow:SetTag",
                "sagemaker-mlflow:UpdateRun"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:*:mlflow-app/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "BYODataSetS3Access",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*sagemaker*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "SageMakerModelPackage",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateModel",
                "sagemaker:CreateModelPackage",
                "sagemaker:CreateModelPackageGroup",
                "sagemaker:UpdateModelPackage",
                "sagemaker:DescribeModelPackage",
                "sagemaker:DescribeModelPackageGroup",
                "sagemaker:ListModelPackages",
                "sagemaker:ListModelPackageGroups",
                "sagemaker:DescribeModel",
                "sagemaker:DeleteModelPackage",
                "sagemaker:DeleteModelPackageGroup"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:*:model-package-group/*",
                "arn:aws:sagemaker:*:*:model-package/*",
                "arn:aws:sagemaker:*:*:model/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "SageMakerLineage",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateAction",
                "sagemaker:CreateArtifact",
                "sagemaker:CreateContext",
                "sagemaker:DescribeAction",
                "sagemaker:DescribeArtifact",
                "sagemaker:DescribeTrialComponent",
                "sagemaker:QueryLineage",
                "sagemaker:AddAssociation",
                "sagemaker:UpdateArtifact"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:*:action/*",
                "arn:aws:sagemaker:*:*:artifact/*",
                "arn:aws:sagemaker:*:*:context/*",
                "arn:aws:sagemaker:*:*:endpoint/*",
                "arn:aws:sagemaker:*:*:experiment-trial-component/*",
                "arn:aws:sagemaker:*:*:model-package/*",
                "arn:aws:sagemaker:*:*:pipeline/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "SageMakerPipelines",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreatePipeline",
                "sagemaker:DescribePipeline",
                "sagemaker:DescribePipelineDefinitionForExecution",
                "sagemaker:DescribePipelineExecution",
                "sagemaker:UpdatePipeline",
                "sagemaker:StartPipelineExecution"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:*:pipeline/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "SageMakerInference",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateEndpoint",
                "sagemaker:CreateEndpointConfig",
                "sagemaker:CreateInferenceComponent",
                "sagemaker:DescribeInferenceComponent",
                "sagemaker:DescribeEndpoint",
                "sagemaker:DescribeEndpointConfig",
                "sagemaker:DeleteInferenceComponent",
                "sagemaker:DeleteEndpoint",
                "sagemaker:InvokeEndpoint"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:*:inference-component/*",
                "arn:aws:sagemaker:*:*:endpoint/*",
                "arn:aws:sagemaker:*:*:endpoint-config/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "SageMakerInferenceAutoscaling",
            "Effect": "Allow",
            "Action": [
                "application-autoscaling:DescribeScalableTargets"
            ],
            "Resource": [
                "arn:aws:application-autoscaling:*:*:scalable-target/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "SageMakerInferenceEcrReadAccess",
            "Effect": "Allow",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SageMakerListPermissions",
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListActions",
                "sagemaker:ListArtifacts",
                "sagemaker:ListAssociations",
                "sagemaker:ListEndpoints",
                "sagemaker:ListInferenceComponents",
                "sagemaker:ListMlflowApps",
                "sagemaker:ListMlflowTrackingServers",
                "sagemaker:ListPipelineExecutions",
                "sagemaker:ListPipelineExecutionSteps",
                "sagemaker:ListWorkforces",
                "sagemaker:Search"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "SageMakerTagsPermission",
            "Effect": "Allow",
            "Action": [
                "sagemaker:AddTags",
                "sagemaker:ListTags"
            ],
            "Resource": [
                "arn:aws:sagemaker:*:*:model-package-group/*",
                "arn:aws:sagemaker:*:*:model-package/*",
                "arn:aws:sagemaker:*:*:hub/*",
                "arn:aws:sagemaker:*:*:hub-content/*",
                "arn:aws:sagemaker:*:*:training-job/*",
                "arn:aws:sagemaker:*:*:model/*",
                "arn:aws:sagemaker:*:*:endpoint/*",
                "arn:aws:sagemaker:*:*:endpoint-config/*",
                "arn:aws:sagemaker:*:*:pipeline/*",
                "arn:aws:sagemaker:*:*:inference-component/*",
                "arn:aws:sagemaker:*:*:action/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "SageMakerJobAdvancedSettings",
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey",
                "kms:ListAliases",
                "iam:ListRoles",
                "ec2:DescribeVpcs",
                "servicequotas:ListServiceQuotas"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "CloudWatchLogReadAccess",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:GetLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:/aws/sagemaker/*",
                "arn:aws:logs:*:*:log-group::log-stream:"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "CloudWatchLogWriteAccess",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:/aws/sagemaker/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "LambdaListFunctions",
            "Effect": "Allow",
            "Action": [
                "lambda:ListFunctions"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "LambdaPermissionsForRewardFunction",
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:InvokeFunction",
                "lambda:GetFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:*:function:*SageMaker*",
                "arn:aws:lambda:*:*:function:*sagemaker*",
                "arn:aws:lambda:*:*:function:*Sagemaker*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "LambdaLayerForAWSSDK",
            "Effect": "Allow",
            "Action": [
                "lambda:GetLayerVersion"
            ],
            "Resource": [
                "arn:aws:lambda:*:336392948345:layer:AWSSDK*"
            ]
        },
        {
            "Sid": "BedrockCustomModelAndEvaluation",
            "Effect": "Allow",
            "Action": [
                "bedrock:CreateCustomModel",
                "bedrock:CreateEvaluationJob",
                "bedrock:GetCustomModel",
                "bedrock:GetModelImportJob",
                "bedrock:GetImportedModel",
                "bedrock:GetEvaluationJob",
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:*:*:evaluation-job/*",
                "arn:aws:bedrock:*:*:imported-model/*",
                "arn:aws:bedrock:*:*:custom-model/*",
                "arn:aws:bedrock:*:*:model-import-job/*",
                "arn:aws:bedrock:*:*:foundation-model/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "BedrockModelImportAndList",
            "Effect": "Allow",
            "Action": [
                "bedrock:CreateModelImportJob",
                "bedrock:ListProvisionedModelThroughputs",
                "bedrock:ListCustomModelDeployments",
                "bedrock:ListCustomModels",
                "bedrock:ListModelImportJobs"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "BedrockFoundationModelOperations",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetFoundationModelAvailability",
                "bedrock:ListFoundationModels"
            ],
            "Resource": "*"
        },
        {
            "Sid": "PassRoleForSageMaker",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::*:role/service-role/*SageMaker*",
                "arn:aws:iam::*:role/service-role/*Sagemaker*",
                "arn:aws:iam::*:role/service-role/*sagemaker*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}",
                    "iam:PassedToService": [
                        "sagemaker.amazonaws.com",
                        "job.sagemaker.amazonaws.com"
                    ]
                },
                "ArnLike": {
                    "iam:AssociatedResourceArn": "arn:aws:sagemaker:*:*:*"
                }
            }
        },
        {
            "Sid": "PassRoleForAWSLambda",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::*:role/SageMakerForLambda*",
                "arn:aws:iam::*:role/service-role/SageMakerForLambda*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}",
                    "iam:PassedToService": "lambda.amazonaws.com"
                },
                "ArnLike": {
                    "iam:AssociatedResourceArn": "arn:aws:lambda:*:*:function:*"
                }
            }
        },
        {
            "Sid": "PassRoleForBedrock",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::*:role/SageMakerForBedrock*",
                "arn:aws:iam::*:role/service-role/SageMakerForBedrock*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}",
                    "iam:PassedToService": "bedrock.amazonaws.com"
                }
            }
        }
    ]
}
```

## Lambda と Bedrock のロール
<a name="model-customize-open-weight-roles"></a>

SageMaker AI 実行ロールに対するアクセス許可に加えて、モデルのカスタマイズには、他の 2 つのサービスのロールが必要です。
+ **Lambda** — RL ベースのトレーニング中にカスタム報酬関数を実行します
+ **Bedrock** — デプロイ用のカスタムモデルをインポートするときに S3 からモデルアーティファクトを読み取ります

### 以前に実行ロールを設定した場合 (レガシーアプローチ)
<a name="model-customize-open-weight-roles-legacy"></a>

以前にこのドキュメントに従い、信頼されたサービスプリンシパル`bedrock.amazonaws.com`として `lambda.amazonaws.com`および を含めるように SageMaker AI 実行ロールの信頼ポリシーを更新した場合、既存の設定は引き続き機能します。変更は必要ありません。

このアプローチを使用するには、実行ロールの信頼ポリシーに次のサービスプリンシパルが含まれている必要があります。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "sagemaker.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "lambda.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

**注記**  
Lambda と Bedrock は実行ロールを引き受け、各サービスに必要なアクセス許可だけでなく、すべてのアクセス許可を継承できるため、このアプローチは安全性が低くなります。

### 個別のロールを作成する (推奨)
<a name="model-customize-open-weight-roles-separate"></a>

セキュリティを向上させるには、これらのサービスプリンシパルを SageMaker AI 実行ロールに追加するのではなく、Lambda 用と Bedrock 用の 2 つの異なるスコープダウン IAM ロールを作成します。各ロールはそれぞれのサービスのみを信頼し、サービスに必要な最小限のアクセス許可のみが含まれます。

SageMaker AI コンソールのクイックセットアップを使用してドメインを設定すると、これらのロールが自動的に作成されます。別の方法でドメインをセットアップする場合は、次の手順を使用してドメインを手動で作成します。

### Lambda ロール
<a name="model-customize-open-weight-roles-lambda"></a>

このロールにより、Lambda は RL ベースのモデルカスタマイズ中にカスタム報酬関数を実行できます。

**命名規則**: `SageMakerForLambda-{domain-id}`

1. 次の信頼ポリシーを使用して IAM ロールを作成します。を 12 桁の AWS アカウント ID `<ACCOUNT_ID>`に置き換えます。

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "lambda.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "StringEquals": {
             "aws:SourceAccount": "<ACCOUNT_ID>"
           },
           "ArnLike": {
             "aws:SourceArn": "arn:aws:lambda:*:<ACCOUNT_ID>:function:*"
           }
         }
       }
     ]
   }
   ```

1. `AWSLambdaBasicExecutionRole` AWS 管理ポリシーをロールにアタッチします。これにより、CloudWatch にログを書き込むために必要なアクセス許可が付与されます。

**注記**  
このロールには、SageMaker AI または Bedrock のアクセス許可は必要ありません。`aws:SourceAccount` および `aws:SourceArn`条件は、ロールの引き受けをアカウントの Lambda 関数のみに制限し、混乱した代理攻撃から保護します。

### Bedrock ロール
<a name="model-customize-open-weight-roles-bedrock"></a>

このロールにより、Bedrock はカスタムモデルのインポート時に SageMaker AI マネージド S3 バケットからモデルアーティファクトを読み取ることができます。

**命名規則**: `SageMakerForBedrock-{domain-id}`

1. 次の信頼ポリシーを使用して IAM ロールを作成します。を 12 桁の AWS アカウント ID `<ACCOUNT_ID>`に置き換えます。

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "bedrock.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {
           "StringEquals": {
             "aws:SourceAccount": "<ACCOUNT_ID>"
           },
           "ArnLike": {
             "aws:SourceArn": "arn:aws:bedrock:*:<ACCOUNT_ID>:*"
           }
         }
       }
     ]
   }
   ```

1. 次のインラインポリシーをロールにアタッチします。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "SageMakerBucketReadAccess",
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::sagemaker-*-${aws:PrincipalAccount}",
                   "arn:aws:s3:::sagemaker-*-${aws:PrincipalAccount}/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceAccount": "${aws:PrincipalAccount}"
                   }
               }
           },
           {
               "Sid": "AllowSSLRequestsOnly",
               "Action": "s3:*",
               "Effect": "Deny",
               "Resource": [
                   "arn:aws:s3:::sagemaker-*-${aws:PrincipalAccount}",
                   "arn:aws:s3:::sagemaker-*-${aws:PrincipalAccount}/*"
               ],
               "Condition": {
                   "Bool": {
                       "aws:SecureTransport": "false"
                   }
               }
           }
       ]
   }
   ```

**注記**  
このロールには、SageMaker AI、Lambda、または Bedrock API アクセス許可は必要ありません。Bedrock は、SageMaker AI マネージド S3 バケット内のモデルアーティファクトへの読み取りアクセスのみを提供します。