はじめに
ユーザーごとに、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されました。