概要
やりたいこと
AWS Config Rules を全リージョンに追加したい。 CloudFormation StackSets を利用する。
AWS Config は事前に有効化しておく。
AWS 公式から Config Rules の CloudFormation テンプレートのサンプルが公開されているのでこちらを参考にする。
AWS Config Rules
AWS Config Rules は AWSリソースの設定が決められた基準を満たしているか確認する。
基準と違えばアラートを発泡する。
CloudFormation のドキュメント。
CloudFormation
単一リージョンにデプロイ
Config Rules を単一リージョン(東京)にのみデプロイする。
- 2 要素認証を設定していない IAM User を検知
- 24 時間に 1 回の頻度でチェック
AWSTemplateFormatVersion: 2010-09-09
Description: Enables an AWS Config rule to check whether the root user of your AWS account requires multi-factor authentication for console sign-in.
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
- Label:
default: Configuration
Parameters:
- Frequency
ParameterLabels:
Frequency:
default: Frequency
Parameters:
Frequency:
Type: String
Default: 24hours
Description: Maximum rule execution frequency.
AllowedValues:
- 1hour
- 3hours
- 6hours
- 12hours
- 24hours
Mappings:
Settings:
FrequencyMap:
1hour : One_Hour
3hours : Three_Hours
6hours : Six_Hours
12hours : Twelve_Hours
24hours : TwentyFour_Hours
Resources:
CheckForRootMFA:
Type: AWS::Config::ConfigRule
Properties:
Description: Checks whether the root user of your AWS account requires multi-factor authentication for console sign-in.
MaximumExecutionFrequency: !FindInMap
- Settings
- FrequencyMap
- !Ref Frequency
Source:
Owner: AWS
SourceIdentifier: ROOT_ACCOUNT_MFA_ENABLED
デプロイ。
aws cloudformation deploy --stack-name config-rules --template-file config_rules.yaml
コンソール上からルールが追加されていることを確認。
次の作業のため、削除しておく。
aws cloudformation delete-stack –stack-name config-rules
StackSets で全リージョンにデプロイ
デプロイするコードは同じなので省略。
CloudForamtion StackSets の作成。
aws cloudformation create-stack-set --stack-set-name configrules-stackset --template-body file://config_rules.yaml --administration-role-arn arn:aws:iam::111111111111:role/AWSCloudFormationStackSetAdministrationRole --execution-role-name AWSCloudFormationStackSetExecutionRole
全リージョンへデプロイ。
aws cloudformation create-stack-instances --stack-set-name configrules-stackset --accounts '["11112222333"]' --regions '["ap-northeast-1","ap-northeast-2", "ap-south-1", "ap-southeast-1", "ap-southeast-2", "ca-central-1", "eu-central-1", "eu-west-1", "eu-west-2", "eu-west-3", "sa-east-1", "us-east-1", "us-east-2", "us-west-1", "us-west-2"]' --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1
全リージョンが CURRENT になっていることを確認。
全リージョンの Config Rules にルールが追加されていること。
コメント