[Amazon SageMaker]ノートブックインスタンスへのアクセスを特定のユーザーに制限する

コンニチハ、千葉です。

SageMakerを利用する場合、IAMユーザーによってアクセスするノートブックインスタンスを分けたいという場合があります。「IPアドレスでノートブックインスタンスへのアクセスを制限する」という方法が、公式ドキュメントにありますが、今回はIPアドレスではなく、特定のIAMユーザーならアクセスできるという制限を入れてみます。

やってみた

公式ドキュメントを参照すると、ノートブックインスタンスにアクセスする場合、CreatePresignedNotebookInstanceUrl が呼ばれノートブックへのアクセス用のURLが発行されます。動作としては、マネージメントコンソールからノートブックにアクセスするリンクをクリックした時にコールされます。そのため、マネージメントコンソールにログインしているIAMユーザー(またはIAMグループ、IAMロール)のIAMポリシーに制限を追加します。

特定のノートブックへのアクセス

AWSへログインしたIAMユーザーに対して、特定の1つのノートブックのみにアクセスを限定します。 現在AWSへログインしているIAMユーザー、グループ、IAMロールのポリシーに以下を追加しましょう。指定したのノートブックのみにアクセスできます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "sagemaker:CreatePresignedNotebookInstanceUrl",
            "NotResource": "arn:aws:sagemaker:ap-northeast-1:1234567890:notebook-instance/chiba42"
        },
        {
            "Effect": "Allow",
            "Action": "sagemaker:CreatePresignedNotebookInstanceUrl",
            "Resource": "arn:aws:sagemaker:ap-northeast-1:1234567890:notebook-instance/chiba42"
        }
    ]
}

NotResourceResource には、SageMakerノートブックインスタンスのARNを指定します。

特定のタグがついてるインスタンスへのアクセス

次は、進化版です。特定タグがついてるノートブックへアクセスできるようにしてみます。例えば5インスタンスあって、Aチームに自由に使ってもらうみたいなケースです。 これは、ノートブックに特定のタグがあったら利用できるみたいにします。

例えば、ノートブックインスタンスにkey: TeamNameValue: A というタグをつけます。このタグを付けたインスタンスのみにアクセスできるIAMポリシーを考えます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "sagemaker:CreatePresignedNotebookInstanceUrl",
            "Resource": "*",
            "Condition": {
                "StringNotEquals": {
                    "sagemaker:ResourceTag/TeamName": "A"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "sagemaker:CreatePresignedNotebookInstanceUrl",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "sagemaker:ResourceTag/TeamName": "A"
                }
            }
        }
    ]
}

こちらを、IAMユーザーにアタッチすると、タグに付いたノートブックのみしかアクセスできなくなります。

さいごに

SageMaker ノートブックインスタンスへのアクセス制限を、IAMベースでやってみました。アクセスを分離したい場合にお試しください!

参考