Amazon SageMaker AI と IAM の連携の仕組み - Amazon SageMaker AI

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

Amazon SageMaker AI と IAM の連携の仕組み

重要

Amazon SageMaker Studio または Amazon SageMaker Studio Classic に Amazon SageMaker リソースの作成を許可するカスタム IAM ポリシーでは、これらのリソースにタグを追加するアクセス許可も付与する必要があります。Studio と Studio Classic は、作成したリソースに自動的にタグ付けするため、リソースにタグを追加するアクセス許可が必要になります。IAM ポリシーで Studio と Studio Classic によるリソースの作成が許可されていても、タグ付けが許可されていない場合は、リソースを作成しようとしたときに「AccessDenied」エラーが発生する可能性があります。詳細については、「SageMaker AI リソースにタグ付けのアクセス許可を付与する」を参照してください。

SageMaker リソースを作成するためのアクセス許可を付与する AWSAmazon SageMaker AI の マネージドポリシー には、それらのリソースの作成中にタグを追加するためのアクセス許可もあらかじめ含まれています。

SageMaker AI へのアクセスを管理するために IAM を使う前に、SageMaker AI で使用できる IAM 機能を理解しておく必要があります。SageMaker AI およびその他の AWSのサービスが IAM と連携する方法の概要については、「サービス認可リファレンス」のAWS「IAM と連携するサービス」を参照してください。

Amazon SageMaker AI 向けのアイデンティティベースのポリシー

IAM アイデンティティベースのポリシーでは許可または拒否するアクションとリソース、またアクションを許可または拒否する条件を指定できます。SageMaker AI は、特定のアクション、リソース、条件キーをサポートしています。JSON ポリシーで使用するすべての要素については、「Service Authorization Reference」の「IAM JSON Policy Elements Reference」を参照してください。

Amazon SageMaker AI 内のリソースベースのポリシー

リソースベースのポリシーのサポート: なし

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスをコントロールできます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーで、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、またはAWSサービスを含めることができます。

クロスアカウントアクセスを有効にするには、アカウント全体、または別のアカウントの IAM エンティティをリソースベースのポリシーのプリンシパルとして指定します。リソースベースのポリシーにクロスアカウントのプリンシパルを追加しても、信頼関係は半分しか確立されない点に注意してください。プリンシパルとリソースが異なる AWS アカウントにある場合、信頼されたアカウントの IAM 管理者は、リソースにアクセスするための許可をプリンシパルエンティティ (ユーザーまたはロール) に付与する必要もあります。IAM 管理者は、ID ベースのポリシーをエンティティにアタッチすることで許可を付与します。ただし、リソースベースのポリシーで、同じアカウントのプリンシパルへのアクセス権が付与されている場合は、アイデンティティベースのポリシーをさらに付与する必要はありません。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。

注記

サポートされている SageMaker AI リソースを安全に共有するには、AWS Resource Access Manager を使用します。共有可能なリソースのリストについては、「共有可能な Amazon SageMaker AI のリソース」を参照してください。

Amazon SageMaker AI 向けのポリシーアクション

管理者は JSON AWSポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

SageMaker AI のポリシーアクションは、アクション前にプレフィックス sagemaker: を使用します。例えば、SageMaker AI CreateTrainingJob API オペレーションで SageMaker AI トレーニングジョブを実行するための許可を付与するには、ポリシーに sagemaker:CreateTrainingJob アクションを含めます。ポリシーステートメントにはAction または NotAction 要素を含める必要があります。SageMaker AI は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。

単一のステートメントに複数のアクションを指定するには次のようにコンマで区切ります。

"Action": [ "sagemaker:action1", "sagemaker:action2" ]

ワイルドカード (*) を使用して複数アクションを指定できます。例えば、Describe という単語で始まるすべてのアクションを指定するには次のアクションを含めます。

"Action": "sagemaker:Describe*"

SageMaker AI アクションのリストを表示するには、「サービス認可リファレンス」の「Amazon SageMaker AI のアクション、リソース、条件キー」を参照してください。

Amazon SageMaker AI 向けのポリシーリソース

ポリシーリソースのサポート: あり

管理者は JSON AWSポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ステートメントにはResource または NotResource 要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

Amazon SageMaker AI リソースタイプとその ARN のリストをについては、「サービス認可リファレンス」の Amazon SageMaker AI によって定義されたアクション、リソースタイプ、条件キーに関する次のリファレンスを参照してください。

各リソースの ARN を指定できるアクションについては、「 Amazon SageMaker AI で定義されるアクション」を参照してください。

Amazon SageMaker AI 向けのポリシー条件キー

管理者は JSON AWSポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition 要素は、定義された基準に基づいてステートメントが実行される時期を指定します。イコールや未満などの条件演算子を使用して条件式を作成し、ポリシーの条件とリクエスト内の値を一致させることができます。すべてのAWSグローバル条件キーを確認するには、「IAM ユーザーガイド」のAWS「グローバル条件コンテキストキー」を参照してください。

SageMaker AI は独自の条件キーを定義し、一部のグローバル条件キーの使用もサポートしています。すべてのAWSグローバル条件キーを確認するには、「サービス認可リファレンス」のAWS「グローバル条件コンテキストキー」を参照してください。

SageMaker AI では、次のオペレーションのきめ細かいアクセスコントロールに使用できるサービス固有の条件キーがいくつかサポートされています。

SageMaker AI 条件キーのリストを確認するには、「サービス認可リファレンス」の「Amazon SageMaker AI の条件キー」を参照してください。条件キーを使用できるアクションとリソースについては、「 Amazon SageMaker AI で定義されるアクション」を参照してください。

SageMaker AI 条件キーの使用例については、「条件キーを使用して SageMaker AI リソースの作成を制御する」を参照してください。

SageMaker AIのアイデンティティベースポリシーの例を確認するには、「Amazon SageMaker AI のアイデンティティベースポリシーの例」を参照してください。

SageMaker AI タグに基づく認証

タグは、SageMaker AI リソースにアタッチしたり、タグをリクエストで SageMaker AI に渡したりできます。タグに基づいてアクセスを管理するには、sagemaker:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの条件要素でタグ情報を提供します。SageMaker AI リソースへのタグ付けの詳細については、「タグを使用して SageMaker AI リソースへのアクセスを制御する」を参照してください。

リソースのタグに基づいてリソースへのアクセスを制限するためのアイデンティティベースポリシーの例を表示するには、「タグを使用して SageMaker AI リソースへのアクセスを制御する」を参照してください。

SageMaker AI の IAM ロール

IAM ロールは、特定のアクセス許可を持つAWSアカウント内のエンティティです。

SageMaker AI での一時的な認証情報の使用

一時的な認証情報を使用して、フェデレーションでサインインする、IAM 役割を引き受ける、またはクロスアカウント役割を引き受けることができます。一時的なセキュリティ認証情報を取得するには、AssumeRoleGetFederationToken などの AWS STSAPI オペレーションを呼び出します。

SageMaker AI では、一時的な認証情報の使用がサポートされています。

サービスリンクロール

SageMaker AI はサービスにリンクされたロールを部分的にサポートしています。サービスにリンクされたロールは、現在 SageMaker Studio Classic で使用できます。

サービス役割

この機能により、ユーザーに代わってサービスがサービスロールを引き受けることが許可されます。この役割により、サービスがお客様に代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービスロールはIAM アカウントに表示され、アカウントによって所有されます。つまり、IAM 管理者はこの役割の権限を変更できます。ただし、それにより、サービスの機能が損なわれる場合があります。

SageMaker AI はサービスロールをサポートしています。

SageMaker AI での IAM ロールの選択

SageMaker AI でノートブックインスタンス、処理ジョブ、トレーニングジョブ、ホスト型エンドポイント、またはバッチ変換ジョブリソースを作成する場合、ユーザーの代理での SageMaker AI へのアクセスを SageMaker AI に許可するロールを選択する必要があります。サービスロールあるいはサービスにリンクされたロールを以前に作成している場合、SageMaker AI は選択できるロールのリストを示します。必要なAWSオペレーションとリソースへのアクセスを許可するロールを選択することが重要です。詳細については、「SageMaker AI 実行ロールの使用方法」を参照してください。