View a markdown version of this page

Role Manager の可用性の変更 - Amazon SageMaker AI

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

Role Manager の可用性の変更

注記

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

IAM ネイティブツール、IAM Identity Center、infrastructure-as-code

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 の置き換え

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

既存のロールにクリーンアップは必要ありません

Role Manager によって以前に作成された IAM ロールは、標準の IAM ロールです。これらは、Role Manager 固有のランタイム依存関係なしで独立して機能し続けます。これらのロール:

  • sagemaker- プレフィックスが付いた標準の IAM ロールとして IAM コンソールに表示されます。

  • IAM コンソールから直接表示、変更、または削除できます。

  • 信頼ポリシーとアクセス許可ポリシーをそのまま運用する

  • この移行の一環として変換、移行、または削除を行う必要はありません。

CDK Role Manager コンストラクトを置き換える (使用する場合)

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

Studio ドメイン作成フローの置き換え

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

IAM コンソールロールの作成によるカスタムドメイン設定

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

詳細な手順については、SageMaker AI 実行ロールの使用方法」を参照してください。

AWS 管理ポリシーを直接使用する

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

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

完全なリストについては、AWS Amazon SageMaker AI の マネージドポリシーを参照してください。

IAM Access Analyzer ポリシー生成を使用する (最小特権の場合)

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

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

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

  3. IAM Access Analyzer からポリシーを生成します

    • IAM コンソール > Access Analyzer > ポリシー生成を開きます。

    • 分析するロールを選択します。

    • CloudTrail の証跡と期間を指定します。

    • 生成されたポリシーを確認します。このポリシーには、実際に使用されたアクションのみが含まれます。

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

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

詳細な手順については、「IAM Access Analyzer ポリシーの生成」を参照してください。

Infrastructure-as-Code (CloudFormation)

バージョン管理された反復可能なロール管理 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)

Role Manager CDK コンストラクト (PersonaActivity) を標準の 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', }, }, })); } }