Amazon SageMaker Studio ノートブックのインスタンスタイプをユーザーごとに利用制限する方法

2023.07.06

はじめに

ユーザーごとに、Amazon SageMaker Studio ノートブックのインスタンスタイプを利用制限する方法について解説します。

Amazon SageMaker Studioのドメイン内の各ユーザーには、ユーザーごとに実行ロールを設定します。

この実行ロールは、ユーザーがStudio環境内で実行できるアクションを制御します。

つまり、Studio内でユーザーがノートブックなどのリソースを作成する際に、SageMakerがそのユーザーの代わりに引き受ける実行ロールです。

ユーザーに無料枠のインスタンスタイプのみの利用などに制限するには、制限を記載したポリシーを実行ロールにアタッチすることで実現できます。

前提条件

  • Amazon SageMaker Studio ドメインとユーザーを作成済み

ユーザーの権限

現時点でのAmazon SageMaker ドメイン内のユーザー(test2)の実行ロールには、以下の権限がアタッチされています。

ノートブックの起動のみであれば、AmazonSageMakerFullAccessの権限のみでも構いません。

  • AmazonSageMakerFullAccess
  • AmazonSageMaker-ExecutionPolicy-20230626T084272

特定のインスタンスタイプのみに利用を制限するIAMポリシー

特定のインスタンスタイプのみを利用させたい場合、以下のポリシーを作成しアタッチすると制限できます。

SageMaker-InstanceType-Restriction

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "InstanceTypeRestriction",
            "Effect": "Deny",
            "Action": "sagemaker:CreateApp",
            "Resource": "arn:aws:sagemaker:*:アカウントID:app/*/*/*/*",
            "Condition": {
                "StringNotLike": {
                    "sagemaker:InstanceTypes": [
                        "ml.t3.medium",
                        "ml.t3.xlarge",
                        "ml.m5.*"
                    ]
                }
            }
        }
    ]
}

ノートブックの起動は、CreateAppの実行権限が必要です。

アカウントIDの箇所は、各個人のアカウントIDを入れます。

インスタンスタイプに、*をつけることで、特定のインスタンスタイプシリーズを全て許可することも可能です。

それでは、ユーザーの実行ロールにポリシーをアタッチしましょう。

検証

実際にインスタンスタイプが制限されているかを確認します。

ml.t3.mediumは、問題なくノートブックが起動できました。

IAMポリシー内で指定していないml.t3.largeを起動してみると、Denyされました。

参照