ポリシーをアタッチしたのにSageMaker Studioへの画面遷移がエラーになる!
SageMaker Studioを利用する際にAmazonSageMakerFullAccess
ポリシーがアタッチされているのに画面遷移しようとすると"Auth token containing insufficient permissions"
というエラーメッセージがでてHTTP403 Forbidden
になってしまうケースに遭遇しました。
該当のエラーメッセージで検索してもAWSのフォーラムが1件しかヒットせず、しかも誰からも返信がなく解決策を得ることが出来ずに途方に暮れました。
原因は何だったのか
結論から言うとIAMのカスタムポリシーの不備でした。
{
"Statement": [
{
"Sid": "SourceIPRestriction",
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"オフィスのグローバルIPアドレスその1",
"オフィスのグローバルIPアドレスその2"
]
}
}
}
]
}
みたいなカスタムポリシーが前任者によって設定されていたのですが、これだと「オフィス内から以外のIPアドレスからのアクセスをすべて弾き」ます。
しかしSageMaker StudioはAWSによりリダイレクトされるため、アクセス元が(おそらく)AWS内のIPアドレスになっているため弾かれた、というのが事の真相のようでした。
どうやって対処したのか
aws:ViaAWSService条件キーを設定しました。
aws:ViaAWSServiceはAWSが代わりにリクエストした場合(リダイレクトなど)を対象にするかどうかを条件に含めることが出来ます。
{
"Statement": [
{
"Sid": "SourceIPRestriction",
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"Bool": {
"aws:ViaAWSService": "false"
},
"NotIpAddress": {
"aws:SourceIp": [
"オフィスのグローバルIPアドレスその1",
"オフィスのグローバルIPアドレスその2"
]
}
}
}
]
}
こうすることで「AWSによるリクエストではない場合にオフィス以外からのアクセスを弾く」という設定になりました。
該当するケースが少ない現象だと思いますがどなたかの参考になれば。