![[アップデート] AWS Service Reference に サービス/アクションごとの IAM 最終アクセス日時とポリシー生成リクエストをサポートしているかを示す情報が追加されました](https://images.ctfassets.net/ct0aopd36mqt/6neHC8dkFAa6clquwP3Z70/d60bf71a50729983ec13dc3aaa87748a/aws-iam.webp)
[アップデート] AWS Service Reference に サービス/アクションごとの IAM 最終アクセス日時とポリシー生成リクエストをサポートしているかを示す情報が追加されました
いわさです。
みなさん AWS Service Reference を知っていますか?
AWS では各 AWS サービスでサポートされているアクション・リソース・条件キーの一覧を AWS Service Reference という JSON ドキュメントでパブリックに提供しています。
ユースケースの例としては IAM ポリシーメンテナンスの自動化の際のマスターデータとして使われることが想定されています。
AWS Service Reference は過去何度かアップデートされているのですが、先日またアップデートされていました。
IAM の最終アクセス情報と、アクセスアナライザーのポリシー生成機能に関するアップデートのようですが、アナウンスを見ただけだと最初よくわかりませんでした。
アップデート内容と実際のコンソール上の内容とを比較して確認してみましたのでその様子を紹介します。
アップデート内容
AWS Service Reference ではサービスごとに以下のようにアクションのリストが提供されています。
今回のアップデートでは次のように SupportedBy
プロパティが追加されています。
{
"Name" : "athena",
"Actions" : [ {
"Name" : "BatchGetNamedQuery",
"Annotations" : {
"Properties" : {
"IsList" : false,
"IsPermissionManagement" : false,
"IsTaggingOnly" : false,
"IsWrite" : false
}
},
"Resources" : [ {
"Name" : "workgroup"
} ],
+ "SupportedBy" : {
+ "IAM Access Analyzer Policy Generation" : true,
+ "IAM Action Last Accessed" : true
+ }
}, {
"Name" : "BatchGetPreparedStatement",
"Annotations" : {
"Properties" : {
"IsList" : false,
"IsPermissionManagement" : false,
"IsTaggingOnly" : false,
"IsWrite" : false
}
},
"Resources" : [ {
"Name" : "workgroup"
} ],
+ "SupportedBy" : {
+ "IAM Access Analyzer Policy Generation" : true,
+ "IAM Action Last Accessed" : true
+ }
}, {
:
本日時点ではIAM Access Analyzer Policy Generation
とIAM Action Last Accessed
という属性を確認することが出来ます。
それぞれ IAM Access Analyzer のポリシー生成機能と、IAM の最終アクセス機能がサポートされているアクションなのかを示しています。
ポリシー生成機能は IAM の許可タブから利用できる以下の機能です。
CloudTrail イベントの履歴から必要な権限のみでの最小権限ポリシーを生成することが出来ます。
また、最終アクセス機能はこの最終アクセス日時タブから確認できる情報で、各サービス・アクションごとに最終アクセス日時がいつだったのか、アクセス履歴がないのか、などを確認することが出来ます。
詳しく知らなかったのですが、これらの機能は全てのサービスアクションがサポートされているわけではなかったのですね。
これまでは次のように Web ページから何のアクションがサポートされているのかを確認する必要があったのですが、今回のアップデートで JSON で情報が公開されるようになったので、例えば IAM ポリシーをメンテナンスするためのアプリケーションコードなどから扱いやすくなった形ですね。
コンソールの最終アクセス日時との比較
では実際にこの設定内容と一致しているか、最終アクセス日時機能で確認してみます。
今回は次の Amazon Athena のアクションから確認してみましょう。
CancelCapacityReservation
アクションはIAM Action Last Accessed
がtrue
ですが、CancelQueryExecution
はfalse
ですね。
:
}, {
"Name" : "CancelCapacityReservation",
"Annotations" : {
"Properties" : {
"IsList" : false,
"IsPermissionManagement" : false,
"IsTaggingOnly" : false,
"IsWrite" : true
}
},
"Resources" : [ {
"Name" : "capacity-reservation"
} ],
"SupportedBy" : {
"IAM Access Analyzer Policy Generation" : true,
"IAM Action Last Accessed" : true
}
}, {
"Name" : "CancelQueryExecution",
"Annotations" : {
"Properties" : {
"IsList" : false,
"IsPermissionManagement" : false,
"IsTaggingOnly" : false,
"IsWrite" : true
}
},
"Resources" : [ {
"Name" : "workgroup"
} ],
"SupportedBy" : {
"IAM Access Analyzer Policy Generation" : false,
"IAM Action Last Accessed" : false
}
}, {
:
CancelCapacityReservation
を確認してみます。
アクセス履歴自体はないですが、コンソール上サポートされていますね。
一方でCancelQueryExecution
についてはアクションのリスト自体表示されていません。一致していますね。
さいごに
本日は AWS Service Reference に サービス/アクションごとの IAM 最終アクセス日時とポリシー生成リクエストをサポートしているかを示す情報が追加されたので確認してみました。
なお、今回のアップデートがサポートされているわけではないようでしたが、ポリシー自動管理ツールの例として AWS からもいくつかツールが提供されています。このあたりを参考に AWS Service Reference を使ってポリシー管理の自動化を試みてみるのもおもしろそうですね。