AWS管理ポリシーをもとにカスタマー管理ポリシーを作成しようとした際に表示された警告について悩んだこと記載しています。 読んでいただいた方の参考になれば幸いです。
はじめに
エデュケーションサービス課の中村(哲)です。
今回のブログでは、IAMポリシーを作成しようとした際に、以下の警告が表示され確認した内容を記載します。 「ポリシーのアクションはリソースレベルのアクセス許可をサポートしておらず、 すべてのリソース を選択する必要があります。」
前提として
AWS管理ポリシー(今回はCloudFrontFullAccess)のJSONをコピーしカスタマー管理ポリシーを作成しようとした際、ビジュアルエディタで確認したところ図1のような警告が表示されておりました。
警告の消し方
IAM アクションには、リソースレベルのアクセス許可がサポートされているものと、されていないものがあります。 今回確認したCloudFrontFullAccessのポリシーでは、S3/Kinesis/IAMの以下のアクションに対して警告が表示されておりました。
"s3:ListAllMyBuckets" "kinesis:DescribeStream" "iam:ListRoles"
上記のアクションはリソースレベルのアクセス許可をサポートしておらず、すべてのリソースを対象とするように変更していただく必要があります。
修正方法は、ビジュアルエディタの警告が表示されている「リソース」を選択し、「指定」ラジオボタンから「すべてのリソース」のラジオボタンに変更していただくか、JSONの該当Resource句をアスタリスク(*)に変更することにより、ビジュアルエディタに表示されていた警告は表示されなくなります。
参考
リソースレベルのアクセス許可については、以下記載がございますのでこちらもご確認ください。
●IAM と連携する AWS のサービス →リソースレベルのアクセス許可 https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html
懸念点
上記の作業で警告は出なくなりましたが、そもそもなぜ AWS 管理ポリシーの JSON をコピーして新しいポリシーを作ろうとすると警告が表示されているのだろうか?何か問題などがあるのではないか?****という懸念点が浮かびました。
確認結果
以下のURLにAWS管理ポリシーに警告が表示される原因が記載されておりました。
●IAM ポリシーのトラブルシューティング 「ポリシーに認識されないサービス、アクション、またはリソースタイプが含まれている場合は、以下のいずれかのエラーが発生しています。」 ※URL内で上記の文面で検索をお願いいたします https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/troubleshoot_policies.html
リソースタイプがビジュアルエディタをサポートしていない – ポリシーに含まれるアクションがサポートされていても、リソースタイプがサポートされていない場合は、警告を無視して続行できます。ただし、IAM は、選択したすべてのアクションのリソースを含めたことを確認できないため、追加の警告が表示されることがあります。
まとめ
最初に警告を消すための方法を記載しましたが、上記のようにリソースタイプがビジュアルエディタをサポートしてない場合であれば警告のままでも問題がなくそのまま利用出来るとのことでした。
また今回確認した、 CloudFrontFullAccessポリシーのJSON は該当のResource句はアスタリスク(*)ではありませんが、S3のすべてのリソース、Kinesisのすべてのリソース、IAMのすべてのリソースを指定しているため実際の動作にも問題ないと判断します。