Amazon SageMaker
開発者ガイド

Amazon SageMaker リソースへのアクセス許可の管理の概要

すべての AWS リソースは AWS アカウントによって所有され、となり、リソースの作成またはアクセスは、アクセス許可のポリシーによって管理されます。アカウント管理者は、IAM ID (ユーザー、グループ、ロール) にアクセス権限ポリシーをアタッチできます。一部のサービス (AWS Lambda など) は、アクセス許可ポリシーをリソースにアタッチすることができます。

注記

アカウント管理者 (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、IAM ユーザーガイド の「IAM のベストプラクティス」を参照してください。

アクセス権限を付与する場合、アクセス権限を取得するユーザー、取得するアクセス権限の対象となるリソース、およびそれらのリソースに対して許可される特定のアクションを決定します。

Amazon SageMaker リソースおよびオペレーション

Amazon SageMaker では、プライマリリソースはノートブックインスタンスです。Amazon SageMaker では、追加リソースタイプとしてトレーニングジョブモデルエンドポイント設定エンドポイントタグもサポートされています。これら追加リソースはサブリソースと呼ばれます。ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。

タグ以外のこれらのリソースとサブリソースには、次の表に示すとおり、一意の ARN が関連付けられています。タグは変更しているリソースの ARN を使用します。たとえば、モデルで使用されると、AddTag アクションはそのモデルリソースと同じ ARN を使用します。

リソースタイプ ARN 形式
バッチ変換ジョブ arn:aws:sagemaker:region:account-id:transform-job/transformJobName
エンドポイント

arn:aws:sagemaker:region:account-id:endpoint/endpointName

エンドポイント設定

arn:aws:sagemaker:region:account-id:endpoint-config/endpointConfigName

ハイパーパラメータ調整ジョブ arn:aws:sagemaker:region:account-id:hyper-parameter-tuning-job/hyperParameterTuningJobName
モデル arn:aws:sagemaker:region:account-id:model/modelName
ノートブックインスタンス arn:aws:sagemaker:region:account-id:notebook-instance/notebookInstanceName
ノートブックインスタンスのライフサイクル設定 arn:aws:sagemaker:region:account-id:notebook-instance-lifecycle-config/notebookInstanceLifecycleConfigName
トレーニングジョブ arn:aws:sagemaker:region:account-id:training-job/trainingJobName

Amazon SageMaker には、Amazon SageMaker リソースを操作する一連のオペレーションが用意されています。使用可能なオペレーションのリストについては、Amazon SageMaker API リファレンスを参照してください。

リソース所有権について

AWS アカウントは、誰がリソースを作成したかにかかわらず、アカウントで作成されたリソースを所有します。具体的には、リソース所有者は、リソースの作成リクエストを認証するプリンシパルエンティティ (ルートアカウント、IAM ユーザー、または IAM ロール) の AWS アカウントです。以下の例では、このしくみを示しています。

  • AWS アカウントのルートアカウントの認証情報を使用してノートブックインスタンスを作成する場合、この AWS アカウントがリソースの所有者です (Amazon SageMaker では、リソースはノートブックインスタンスです)。

  • AWS アカウントに IAM ユーザーを作成し、ノートブックインスタンスを作成するためのアクセス許可をそのユーザーに付与した場合、そのユーザーはノートブックインスタンスを作成できます。ただし、ユーザーが属する AWS アカウントはノートブックインスタンスリソースを所有しています。

  • AWS アカウントに、ノートブックインスタンスを作成するためのアクセス許可を持つ IAM ロールを作成する場合は、ロールを引き受けることのできるいずれのユーザーもノートブックインスタンスを作成できます。ユーザーが属する AWS アカウントはノートブックインスタンスリソースを所有しています。

リソースへのアクセスの管理

アクセスポリシーでは、誰が何にアクセスできるかを記述します。以下のセクションで、アクセス権限のポリシーを作成するためのオプションについて説明します。

注記

このセクションでは、Amazon SageMaker のコンテキストでの IAM の使用について説明します。これは、IAM サービスに関する詳細情報を取得できません。完全な IAM ドキュメントについては、IAM ユーザーガイドの「IAM とは?」を参照してください。IAM ポリシー構文の詳細および説明については、IAM ユーザーガイドの「AWS IAM ポリシーリファレンス」を参照してください。

IAM アイデンティティにアタッチされたアクセス許可ポリシーは、アイデンティティベースのポリシー (IAM ポリシー) と呼ばれます。リソースにアタッチされたアクセス許可ポリシーはリソースベースのポリシーと呼ばれます。Amazon SageMaker では、アイデンティティベースのアクセス許可ポリシーのみがサポートされています。

アイデンティティベースのポリシー (IAM ポリシー)

アクセス許可ポリシーを IAM の ID にアタッチできます。たとえば、次の操作を実行できます。

  • アカウントのユーザーまたはグループにアクセス許可ポリシーをアタッチする – ボットなどの Amazon SageMaker リソースを作成するアクセス許可をユーザーまたはユーザーのグループに付与するには、ユーザーまたはユーザーが所属するグループにアクセス許可ポリシーをアタッチできます。

  • アクセス許可ポリシーをロールにアタッチする (クロスアカウントのアクセス許可を付与する) – アイデンティティベースのアクセス許可ポリシーを IAM ロールにアタッチして、クロスアカウントのアクセス許可を付与することができます。たとえば、アカウント A の管理者は、次のように他のまたは AWS にクロスアカウントのアクセス権限を別の AWS アカウント (アカウント B) または AWS サービスに付与するロールを作成することができます。

    1. アカウント A の管理者は、IAM ロールを作成して、アカウント A のリソースへのアクセスを許可するアクセス権限ポリシーをそのロールにアタッチします。

    2. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別するロールに、信頼ポリシーをアタッチします。

    3. アカウント B の管理者は、アカウント B のユーザーにロールを引き受ける権限を委任できるようになります。これにより、アカウント B のユーザーにアカウント A のリソースの作成とアクセスが許可されます。AWS サービスのアクセス権限を付与してロールを引き受けさせたい場合は、信頼ポリシー内のプリンシパルも、AWS サービスのプリンシパルとなることができます。

    IAM を使用したアクセス権限の委任の詳細については、IAM ユーザーガイド の「アクセス管理」を参照してください。

Amazon SageMaker のアクションの一部 (CreateTrainingJob など) については、サービスがそのロールとアクセス許可を割り当てることができるように、ユーザーが Amazon SageMaker に IAM ロールを渡す必要があります。ユーザーがロール (とそのアクセス許可) を AWS のサービスに渡すには、そのサービスにロールを渡すためのアクセス許可が必要になります。ユーザーが AWS のサービスにロールを渡すことを許可するには、iam:PassRole アクションのアクセス許可を付与する必要があります。詳細については、IAM ユーザーガイドAWS のサービスにロールを渡すアクセス許可をユーザーに許可するを参照してください。

アクセス許可ポリシーの例を次に示します。IAM ユーザーにアタッチします。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sagemaker:CreateModel" ], "Effect": "Allow", "Resource": "arn:aws:sagemaker:region:account-id:model/modelName" }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::account-id:role/role-name" ] } ] }

Amazon SageMaker でアイデンティティベースのポリシーを使用する詳細については、Amazon SageMaker でアイデンティティベースのポリシー (IAM ポリシー) を使用するを参照してください。ユーザー、グループ、ロール、アクセス権限の詳細については、IAM ユーザーガイド の「アイデンティティ (ユーザー、グループ、ロール)」を参照してください。

リソースベースのポリシー

Amazon S3 などの他のサービスでは、リソースベースのアクセス権限ポリシーもサポートされています。たとえば、S3 バケットにポリシーをアタッチして、そのバケットへのアクセス許可を管理することができます。Amazon SageMaker はリソースベースのポリシーをサポートしていません。

ポリシー要素の指定 : リソース、アクション、効果、プリンシパル

Amazon SageMaker リソースの種類ごとに、このサービスは、一連の API オペレーションを定義します。こうした API オペレーションへのアクセス許可を付与するために、Amazon SageMaker はポリシー内に指定できる一連のアクションを定義します。たとえば、Amazon SageMaker ノートブックインスタンスリソースの場合、アクション CreateNotebookInstanceDeleteNotebookInstanceDescribeNotebookInstance が定義されます。一部の API オペレーションは、API オペレーションを実行するために複数のアクションに対するアクセス許可を要求できます。リソースおよび API オペレーションに関する詳細については、「Amazon SageMaker リソースおよびオペレーション」および「API リファレンス」を参照してください。

以下は、最も基本的なポリシーの要素です。

  • リソース – Amazon リソースネーム (ARN) を使用して、アイデンティティベースのポリシーを適用するリソースを識別します。詳細については、「Amazon SageMaker リソースおよびオペレーション」を参照してください。

  • アクション – アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識別します。たとえば、sagemaker:CreateModel を使用してモデルをノートブックインスタンスに追加できます。

  • 効果 – ユーザーが特定のアクションをリクエストする際の効果 (許可または拒否) を指定します。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。

  • プリンシパル – アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。Amazon SageMaker では、リソースベースのポリシーはサポートされていません。

IAM ポリシーの構文と記述の詳細については、IAM ユーザーガイドAWS IAM ポリシーリファレンスを参照してください。

すべての Amazon SageMaker API オペレーションとそれらが適用されるリソースのについては、Amazon SageMaker API のアクセス許可: アクション、アクセス許可、およびリソースのリファレンス を参照してください。

ポリシーでの条件の指定

アクセス許可を付与するとき、IAM ポリシー言語を使用してポリシーの適用条件を指定できます。たとえば、特定の日付の後にのみ適用されるポリシーが必要になる場合があります。ポリシー言語での条件の指定の詳細については、IAM ユーザーガイド条件を参照してください。

条件を表すには、あらかじめ定義された条件キーを使用します。Amazon SageMaker に固有の条件キーはありません。ただし、AWS 全体の条件キーがあり、必要に応じて使用できます。Amazon SageMaker アクセス許可ポリシーで使用される AWS 全体を対象とするすべてのキーの例については、Amazon SageMaker コンソールを使用するために必要なアクセス許可を参照してください。AWS 全体を対象とするすべてのキーのリストについては、IAM ユーザーガイド条件に利用可能なキーを参照してください。