

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

# Role Manager の可用性の変更
<a name="role-manager-availability-change"></a>

**注記**  
Amazon SageMaker Role Manager は新規顧客に公開されなくなりました。既存のお客様は、引き続きこのサービスを通常どおり使用できます。 は AWS 引き続き Role Manager のセキュリティと可用性の向上に投資しますが、新機能を導入する予定はありません。

## IAM ネイティブツール、IAM Identity Center、infrastructure-as-code
<a name="role-manager-replacement-overview"></a>

 AWS IAM ネイティブロールの作成と Infrastructure-as-Code (CloudFormation、CDK) の組み合わせは AWS IAM アイデンティティセンター、ペルソナベースのロールの作成とアクティビティベースのアクセス許可の範囲にわたってそのコア機能をカバーすることで、Amazon SageMaker Role Manager の代替として機能します。

AWS IAM ネイティブツールは、`sagemaker.amazonaws.com`サービスプリンシパル信頼ポリシーを使用してロールを作成し、管理ポリシーまたはカスタムポリシーをアタッチするための標準ワークフローを提供することで、IAM コンソール、CLI、または SDK を介して実行ロールの作成を処理します。

AWS IAM アイデンティティセンター は、SageMaker リソースへのきめ細かなアクセスを定義するアクセス許可セットを提供し、外部 ID プロバイダー (Okta、Azure AD、Ping Identity) からのフェデレーティッド ID と SageMaker Studio による信頼できる ID の伝播を可能にすることで、ワークフォース ID と一元化されたアクセス管理を処理します。

IAM Access Analyzer は、実際の CloudTrail アクセスパターンを分析し、Role Manager の静的アクティビティベースのテンプレートを使用量ベースのポリシーレコメンデーションに置き換えて、洗練されたポリシーを推奨することで、動的なポリシー検証と最小特権ポリシー生成を提供します。

繰り返し可能なガバナンスのために、 CloudFormation CDK テンプレートは、エンタープライズ CI/CD パイプラインおよびセキュリティレビュープロセスと統合するバージョン管理、監査、繰り返し可能な IAM ロール定義を提供します。

## Role Manager の置き換え
<a name="role-manager-replacing"></a>

ワークフローに SageMaker AI コンソールへの移動 (管理者設定 > ロールマネージャー > ロールの作成) が含まれる場合、またはドメイン、ノートブック、トレーニングジョブ、推論モデルの作成中に「ロール作成ウィザードを使用してロールを作成する」オプションを使用する場合は、以下の「置き換えの設定」セクションで説明されている代替パスを使用します。

### 既存のロールにクリーンアップは必要ありません
<a name="role-manager-no-cleanup"></a>

Role Manager によって以前に作成された IAM ロールは、標準の IAM ロールです。これらは、Role Manager 固有のランタイム依存関係なしで独立して機能し続けます。これらのロール:
+ `sagemaker-` プレフィックスが付いた標準の IAM ロールとして IAM コンソールに表示されます。
+ IAM コンソールから直接表示、変更、または削除できます。
+ 信頼ポリシーとアクセス許可ポリシーをそのまま運用する
+ この移行の一環として変換、移行、または削除を行う必要はありません。

### CDK Role Manager コンストラクトを置き換える (使用する場合)
<a name="role-manager-replace-cdk"></a>

`@aws-cdk/aws-sagemaker-alpha` Role Manager CDK コンストラクト ( `Persona`および `Activity` クラス) を使用した場合は、それらを標準`aws-cdk-lib/aws-iam`コンストラクトに置き換えます。置換パターンについては、以下のInfrastructure-as-Codeセクションを参照してください。

### Studio ドメイン作成フローの置き換え
<a name="role-manager-studio-domain-flow"></a>

SageMaker AI ドメインを作成するとき、Role Manager は、オンボーディングウィザード (「ロール作成ウィザードを使用してロールを作成する」) 中に実行ロールを作成するオプションとして提供されました。以下の代替方法に従います。

#### IAM コンソールロールの作成によるカスタムドメイン設定
<a name="role-manager-custom-domain-iam"></a>

カスタムドメインの作成中に、Role Manager を使用するのではなく、IAM コンソールから直接実行ロールを作成できます。

**ステップ 1: IAM で実行ロールを作成する**

1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

1. **[Roles]** (ロール)、**[Create role]** (ロールの作成) の順に選択します。

1. **AWS サービスを**信頼されたエンティティタイプとして保持します。

1. 「他の AWS サービスのユースケース」で、**SageMaker AI **を検索して選択します。

1. **SageMaker AI – Execution** を選択し、**Next** を選択します。

1. `AmazonSageMakerFullAccess` 管理ポリシーは自動的にアタッチされます。[**次へ**] を選択します。

1. **ロール名** ( など`AmazonSageMaker-ExecutionRole-CustomDomain`) と**説明**を入力します。

1. (オプション) ガバナンスと追跡のタグを追加します。

1. **ロールの作成** を選択し、ロール ARN を書き留めます。

**ステップ 2: ドメインの作成時に ロールを使用する**

1. SageMaker AI コンソールで、**管理者設定** > **ドメイン** > **ドメインの作成**を選択します。

1. **組織のセットアップ (カスタムセットアップ)** を選択します。

1. **実行ロール**で、**カスタム IAM ロール ARN を入力し**、ステップ 1 の ARN を貼り付けます。

1. 残りのドメイン設定ステップを完了します。

詳細な手順については、[SageMaker AI 実行ロールの使用方法](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)」を参照してください。

#### AWS 管理ポリシーを直接使用する
<a name="role-manager-managed-policies"></a>

AWS は、一般的な SageMaker アクティビティを対象とする マネージドポリシーを提供します。これらを IAM 実行ロールに直接アタッチします。


| ユースケース | AWS アタッチする マネージドポリシー | 
| --- | --- | 
| 一般的な ML 開発 (データサイエンティスト同等) | AmazonSageMakerFullAccess | 
| モニタリング/監査のための読み取り専用アクセス | AmazonSageMakerReadOnly | 
| Canvas ユーザー | AmazonSageMakerCanvasFullAccess \+ AmazonSageMakerCanvasAIServicesAccess | 
| パイプラインオペレーション (MLOps 相当) | AmazonSageMakerFullAccess \+ AmazonSageMakerPipelinesIntegrations | 
| Feature Store へのアクセス | AmazonSageMakerFeatureStoreAccess | 
| モデルガバナンス | AmazonSageMakerModelGovernanceUseAccess | 
| モデルレジストリ | AmazonSageMakerModelRegistryFullAccess | 

完全なリストについては、[AWS Amazon SageMaker AI の マネージドポリシー](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol.html)を参照してください。

#### IAM Access Analyzer ポリシー生成を使用する (最小特権の場合)
<a name="role-manager-access-analyzer"></a>

IAM Access Analyzer を使用して、実際の CloudTrail アクセスアクティビティに基づいて最小特権ポリシーを生成します。これにより、Role Manager の静的テンプレートよりも正確で使用状況ベースのポリシーが生成されます。

1. SageMaker ワークロードの** CloudTrail **ログ記録を有効にします (通常は既に有効になっています）。

1. より広範なポリシー ( など`AmazonSageMakerFullAccess`) で**ワークロード**を代表的な期間 (30～90 日を推奨) 実行します。

1. IAM Access Analyzer から**ポリシーを生成します**。
   + IAM コンソール > **Access Analyzer** > **ポリシー生成**を開きます。
   + 分析するロールを選択します。
   + CloudTrail の証跡と期間を指定します。
   + 生成されたポリシーを確認します。このポリシーには、実際に使用されたアクションのみが含まれます。

1. **生成されたポリシーを適用**して、より広範な初期ポリシーを置き換えます。

このアプローチは、Role Manager の静的テンプレートを実際の使用パターンを反映する動的ポリシーに置き換え、手動キュレーションなしで真の最小特権を実現します。

詳細な手順については、[「IAM Access Analyzer ポリシーの生成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html)」を参照してください。

#### Infrastructure-as-Code (CloudFormation)
<a name="role-manager-cloudformation"></a>

バージョン管理された反復可能なロール管理 CloudFormation のために、 で SageMaker 実行ロールを定義します。以下は、ユースケースに基づいて変更する必要がある例です。

```
AWSTemplateFormatVersion: '2010-09-09'
Description: SageMaker execution roles replacing Role Manager personas

Resources:
  # Replaces Role Manager "SageMaker AI Compute" persona
  SageMakerComputeRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: sagemaker-compute-execution-role
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: sagemaker.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
      Policies:
        - PolicyName: S3DataAccess
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - s3:GetObject
                  - s3:PutObject
                  - s3:DeleteObject
                  - s3:ListBucket
                Resource:
                  - arn:aws:s3:::my-sagemaker-bucket
                  - arn:aws:s3:::my-sagemaker-bucket/*
      Tags:
        - Key: Purpose
          Value: sagemaker-compute
        - Key: ManagedBy
          Value: cloudformation

  # Replaces Role Manager "Data Scientist" persona
  DataScientistRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: sagemaker-data-scientist-role
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: sagemaker.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
        - arn:aws:iam::aws:policy/AmazonSageMakerCanvasFullAccess
        - arn:aws:iam::aws:policy/AmazonSageMakerCanvasAIServicesAccess
      Policies:
        - PolicyName: GlueAccess
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - glue:CreateTable
                  - glue:UpdateTable
                  - glue:DeleteTable
                  - glue:GetTable
                  - glue:GetTables
                  - glue:GetDatabase
                  - glue:GetDatabases
                Resource: '*'
      Tags:
        - Key: Purpose
          Value: sagemaker-data-scientist
        - Key: ManagedBy
          Value: cloudformation

  # Replaces Role Manager "MLOps" persona
  MLOpsRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: sagemaker-mlops-role
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: sagemaker.amazonaws.com
            Action: sts:AssumeRole
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
        - arn:aws:iam::aws:policy/AmazonSageMakerPipelinesIntegrations
        - arn:aws:iam::aws:policy/AmazonS3FullAccess
      Tags:
        - Key: Purpose
          Value: sagemaker-mlops
        - Key: ManagedBy
          Value: cloudformation

Outputs:
  ComputeRoleArn:
    Description: ARN of the SageMaker Compute execution role
    Value: !GetAtt SageMakerComputeRole.Arn
  DataScientistRoleArn:
    Description: ARN of the Data Scientist execution role
    Value: !GetAtt DataScientistRole.Arn
  MLOpsRoleArn:
    Description: ARN of the MLOps execution role
    Value: !GetAtt MLOpsRole.Arn
```

#### Infrastructure-as-Code (AWS CDK)
<a name="role-manager-cdk"></a>

Role Manager CDK コンストラクト (`Persona`、`Activity`) を標準の IAM コンストラクトに置き換えます。以下は、ユースケースに基づいて変更する必要がある例です。

```
import * as cdk from 'aws-cdk-lib';
import * as iam from 'aws-cdk-lib/aws-iam';
import { Construct } from 'constructs';

export class SageMakerRolesStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // Replaces Role Manager "SageMaker AI Compute" persona
    const computeRole = new iam.Role(this, 'SageMakerComputeRole', {
      roleName: 'sagemaker-compute-execution-role',
      assumedBy: new iam.ServicePrincipal('sagemaker.amazonaws.com'),
      managedPolicies: [
        iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerFullAccess'),
      ],
    });

    // Replaces Role Manager "Data Scientist" persona
    const dataScientistRole = new iam.Role(this, 'DataScientistRole', {
      roleName: 'sagemaker-data-scientist-role',
      assumedBy: new iam.ServicePrincipal('sagemaker.amazonaws.com'),
      managedPolicies: [
        iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerFullAccess'),
        iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerCanvasFullAccess'),
        iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerCanvasAIServicesAccess'),
      ],
    });

    // Add custom inline policy for Glue access
    // (replaces "Manage Glue Tables" ML activity)
    dataScientistRole.addToPolicy(new iam.PolicyStatement({
      effect: iam.Effect.ALLOW,
      actions: [
        'glue:CreateTable',
        'glue:UpdateTable',
        'glue:DeleteTable',
        'glue:GetTable',
        'glue:GetTables',
        'glue:GetDatabase',
        'glue:GetDatabases',
      ],
      resources: ['*'],
    }));

    // Replaces Role Manager "MLOps" persona
    const mlopsRole = new iam.Role(this, 'MLOpsRole', {
      roleName: 'sagemaker-mlops-role',
      assumedBy: new iam.ServicePrincipal('sagemaker.amazonaws.com'),
      managedPolicies: [
        iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerFullAccess'),
        iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonSageMakerPipelinesIntegrations'),
        iam.ManagedPolicy.fromAwsManagedPolicyName('AmazonS3FullAccess'),
      ],
    });

    // Example: Scope down with VPC conditions
    // (replaces Role Manager VPC customization)
    computeRole.addToPolicy(new iam.PolicyStatement({
      effect: iam.Effect.ALLOW,
      actions: [
        'ec2:CreateNetworkInterface',
        'ec2:CreateNetworkInterfacePermission',
        'ec2:DeleteNetworkInterface',
        'ec2:DeleteNetworkInterfacePermission',
        'ec2:DescribeNetworkInterfaces',
        'ec2:DescribeVpcs',
        'ec2:DescribeDhcpOptions',
        'ec2:DescribeSubnets',
        'ec2:DescribeSecurityGroups',
      ],
      resources: ['*'],
      conditions: {
        StringEquals: {
          'ec2:Vpc': 'arn:aws:ec2:us-east-1:123456789012:vpc/vpc-xxxxxxxx',
        },
      },
    }));
  }
}
```