概要
CloudFormationテンプレートから空(何もアクションを指定していない状態)のIAMポリシーを作成する方法を調べた時に、英語の記事しかヒットしなかったので書きました。
空のIAMポリシーを作成する方法
アクションを何も指定しないで作成しようとするとエラーになって作成することができませんが、
"Action": "<サービス名>:<アクション名>"
"Action": "test:test"のように適当な<サービス名>と<アクション名>を指定したら、何も権限が付与されていない空の状態のIAMポリシーを作成できます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "test:test",
"Resource": "*"
}
]
}
ですが、存在しない<サービス名>と<アクション名>を指定した場合、下記の画像のように「識別されていないサービス」という警告が出てしまいます。
警告を出したくない場合は、下記のように"NotAction"を使うことで警告を出さずに空のIAMポリシーを作成できます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"NotAction": "*",
"Resource": "*"
}
]
}
下記は"NotAction"を使ったパターンのCloudFormationテンプレートです。
AWSTemplateFormatVersion: '2010-09-09'
Resources:
AccountCustomPolicy:
Type: AWS::IAM::ManagedPolicy
Properties:
ManagedPolicyName: "account-custom-policy"
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
NotAction:
- "*"
Resource:
- "*"