概要
AmazonSageMakerFullAccess を与えられた IAM ユーザは、SageMaker Studio の画面を開くと、Studio の全ユーザプロファイルを見てアクセスすることができます。これを特定のIAMユーザにしか開けないようにします。
例えば、IAMユーザ A には、Studio のユーザプロファイル X のみにアクセスを許可し、他のユーザプロファイル Y, Z にはアクセスを許可しないというものです。
IAM ユーザを準備します
ユーザを操作できる管理者権限でログインしておきましょう。
ひとまず AmazonSageMakerFullAccess を与えたIAMユーザを作成して、SageMaker に関しては、ある程度何でもできるユーザにしておきます。
まず IAM のユーザ画面にアクセスして、右上のボタンからユーザ追加
ユーザ名を適当に restricted-studio-user
としました。user-A とか何でも構いません。コンソールからログインすることを想定して、AWSマネジメントコンソールへのアクセス
にチェックを入れておきましょう。
次の画面で AmazonSageMakerFullAccess の権限を指定します。
できました!
SageMaker Studio のユーザプロファイル
先程作成した restricted-studio-user
がアクセスする SageMaker Studio のユーザプロファイルを作成します。管理者権限のまま、Amazon SageMaker Studio の画面に移動します。まだ domain を作っていない場合は作成しましょう。
Studio 側のユーザプロファイルは restricted-user
という名前にしました。実行ロールはこのユーザが Studio で使うロールです。 AmazonSageMakerFullAccess がついているロールなどを適当に作成してここで指定します。
しばらく待つと、restricted-user
というユーザができあがります。
IAM ユーザの権限を絞って Studio へのアクセスを制限
先程作成したユーザプロファイル restricted-user
のみを使えるようにします。具体的には、最初に作成した IAMユーザに以下の権限をつければOKです。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "sagemaker:CreatePresignedDomainUrl",
"NotResource": "arn:aws:sagemaker:(region):(account_id):user-profile/(domain_id)/(user_mame)"
},
{
"Effect": "Allow",
"Action": "sagemaker:CreatePresignedDomainUrl",
"Resource": "arn:aws:sagemaker:(region):(account_id):user-profile/(domain_id)/(user_mame)"
}
]
}
上の Deny
は指定されたユーザープロファイル以外へのアクセスを禁止し、下の Allow
は指定されたユーザープロファイルへのアクセスを許可します。上記では AmazonSageMakerFullAccess
のポリシーが付与されていて、すべてのユーザープロファイルに対してアクセスが許可されているので Deny
だけでも良いです。
Resource は、例えば、東京リージョン、アカウントID 123456789012、ドメインが d-XXXXXXxxxxxx, ユーザープロファイルが restricted-user なら以下のようになります。
arn:aws:sagemaker:ap-northeast-1:123456789012:user-profile/d-XXXXXXxxxxxx/restricted-user
ドメイン ID は Studio の以下の画面からも確認できます。
さて、IAM の画面に戻って、restricted-studio-user
に上記のポリシーを追加します。IAM ユーザを選んだ画面で インラインポリシーの追加
を選びましょう。
上のタブで json を選んで作成したポリシーを貼り付けます。右下のボタンでポリシーの確認をして、その後、名前をつけて完了です。これで、IAMユーザ restricted-studio-user
は Studio のユーザープロファイル restricted-user
にしかアクセスできません。
試してみましょう
restricted-studio-user
でログインしなおして Studio にアクセスします。AmazonSageMakerFullAccess の権限だと、コンソールの一部でエラーが出ますが、今回は問題ありません。許可されている restricted-user
と許可されていない default-1629100323037
を試してみます。
許可されている場合
問題なくアクセスできました。
許可されていない場合
権限がないのでエラーが出て、Studio の画面にアクセスできませんでした。