こんにちは、Cloud Automatorの柳瀬です。
先日、このブログでCloud Automatorに必要なIAMポリシーのサンプルを公開致しました。公開していたIAMポリシーはポリシードキュメントを1つのファイルとして定義していましたが、今回は必要なポリシードキュメントをAWSサービス毎に分割しました。
というのも、こちらのブログに記載されている通りIAMユーザーやグループに適用できるポリシードキュメントには以下のような制約があります。
- IAMユーザー:付与したすべてのポリシーの文字合計が2048文字以下
- IAMグループ:付与したすべてのポリシーの文字合計が5120文字以下
1ユーザーや1グループにまとめてポリシーを適用していると、Cloud Automatorでサポートするアクションが増えた場合に上記制約に触れてしまう可能性があります。そのため、AWSサービス毎にIAMグループを作成し、IAMユーザーをグループに所属させる方法をご紹介します。
IAMポリシーのサンプル
各AWSサービス毎のサンプルポリシーは以下となります。
SQS
EC2
ELB
RDS
Route 53
Redshift
WorkSpaces
SSM
IAM
Management Consoleでの適用方法
- Management Consoleの左メニューからGroupsを選択し、Create New Groupをクリックします
Group Nameを入力後、Set PermissionsからCustom Policyを選択します
ポリシードキュメントを貼り付けてグループを作成します
AWSサービス毎に下記画像のようにIAMグループを作成して下さい
次に左メニューからUsersを選択し、Add User to Groupsをクリックします(IAMユーザーは事前に作成して下さい)
先ほど作成されたグループが表示されますので、チェックを入れてグループに加えます
AWS CLIによる適用方法
事前にそれぞれのポリシーファイルをリポジトリからダウンロードしておきます。
- IAMグループの作成と権限の割り当てを行います
$ aws iam create-group --profile my-profile --group-name sqs-group $ aws iam create-group --profile my-profile --group-name ec2-group $ aws iam create-group --profile my-profile --group-name rds-group $ aws iam create-group --profile my-profile --group-name route53-group $ aws iam create-group --profile my-profile --group-name redshift-group $ aws iam create-group --profile my-profile --group-name workspaces-group $ aws iam create-group --profile my-profile --group-name ssm-group
$ aws iam put-group-policy --profile my-profile --group-name sqs-group \ --policy-name sqs-policy --policy-document file://./iam-policies/sqs-policy.json $ aws iam put-group-policy --profile my-profile --group-name ec2-group \ --policy-name ec2-policy --policy-document file://./iam-policies/ec2-policy.json $ aws iam put-group-policy --profile my-profile --group-name rds-group \ --policy-name rds-policy --policy-document file://./iam-policies/rds-policy.json $ aws iam put-group-policy --profile my-profile --group-name route53-group \ --policy-name route53-policy --policy-document file://./iam-policies/route53-policy.json $ aws iam put-group-policy --profile my-profile --group-name redshift-group \ --policy-name redshift-policy --policy-document file://./iam-policies/redshift-policy.json $ aws iam put-group-policy --profile my-profile --group-name workspaces-group \ --policy-name workspaces-policy --policy-document file://./iam-policies/workspaces-policy.json $ aws iam put-group-policy --profile my-profile --group-name ssm-group \ --policy-name workspaces-policy --policy-document file://./iam-policies/ssm-policy.json
- IAMユーザーを先ほど作成したIAMグループに割り当てます
$ aws iam add-user-to-group --profile my-profile \ --user-name cloudautomator --group-name sqs-group $ aws iam add-user-to-group --profile my-profile \ --user-name cloudautomator --group-name ec2-group $ aws iam add-user-to-group --profile my-profile \ --user-name cloudautomator --group-name rds-group $ aws iam add-user-to-group --profile my-profile \ --user-name cloudautomator --group-name route53-group $ aws iam add-user-to-group --profile my-profile \ --user-name cloudautomator --group-name redshift-group $ aws iam add-user-to-group --profile my-profile \ --user-name cloudautomator --group-name workspaces-group $ aws iam add-user-to-group --profile my-profile \ --user-name cloudautomator --group-name ssm-group
注意点
Cloud Automatorでは引き続き新しいトリガーやアクションをリリースしてまいります。
上記ポリシーは執筆時点での機能で動作確認をしておりますので、新しい機能が動作しない可能性がございます。AWSの公式ページで紹介されているテンプレートポリシーのPower Userをお使いいただくと、ポリシーの更新をすることなく新機能をお使いいただけますのでご検討下さい。
参考リンク
- http://blog.serverworks.co.jp/tech/2014/03/11/iam-limitation/
- http://www.slideshare.net/AmazonWebServicesJapan/20130716-aws-meisterregenerateiampublic
Cloud Automator(クラウドオートメーター)とは、バックアップや災害対策、AWS費用の削減といった「ジョブ」と、AWSがガイドライン通りに運用されていることを継続的に確認する「構成レビュー」という2つのAWS運用を自動化し、AWSの利用メリットを最大限に引き出すサービスです。