AWS Configを使用した「require-tag」ポリシーの組織全体適用手順
前提
- AWS Control Towerを使用し、組織全体を管理していること。
- 自動的に生成されるAWS Configリソースに関する情報は、このリンク を参照してください。
- 初期設定されていないルールを追加する場合は、このガイド を参照してください。
AWS Configサービスの委任について
AWS Configを組織全体で一括管理するために、以下の手順を実行します。詳細はこちら を参照してください。
- Organizationsの「信頼されたアクセス」を有効化します。
- メンバーアカウントにAWS Configを委任します。
Slack通知について
- Control Towerが有効な場合、自動的に生成されたSNSトピックにChatbotを設定することで、Slack通知が送信されるようになります。
- デフォルトの通知設定ではリソースが作成されるたびに通知が送信されています。
require-tag
ポリシーのみ通知させるために、自動的に生成されたEventBridgeのルールを編集します。Control Towerで作成されたルールはSCPで変更できないため、作業前後で一時的にSCPをデタッチする必要があります。
EventBridgeの変更内容は以下のとおり。
変更前
{
"source": ["aws.config"],
"detail-type": ["Config Rules Compliance Change"]
}
変更後
{
"source": ["aws.config"],
"detail-type": ["Config Rules Compliance Change"],
"detail": {
"messageType": ["ComplianceChangeNotification"],
"configRuleName": ["require-tag"],
"newEvaluationResult": {
"complianceType": ["NON_COMPLIANT"]
}
}
}
require-tag
ポリシーの作成について
require-tag
ポリシーを作成する手順に関して、このブログの手順 を参考に、CLIコマンドを使用して以下のコマンドを実行します。
適用コマンド:
$ aws configservice put-organization-config-rule \
--organization-config-rule-name org-required-tags \
--organization-managed-rule-metadata '{
"Description": "指定したタグがリソースに存在するかチェックします。",
"RuleIdentifier": "REQUIRED_TAGS",
"InputParameters": "{\"tag1Key\":\"CostCenter\"}",
"ResourceTypesScope": ["AWS::ACM::Certificate", "AWS::AutoScaling::AutoScalingGroup", "AWS::CloudFormation::Stack", "AWS::CodeBuild::Project", "AWS::DynamoDB::Table", "AWS::EC2::CustomerGateway", "AWS::EC2::Instance", "AWS::EC2::InternetGateway", "AWS::EC2::NetworkAcl", "AWS::EC2::RouteTable", "AWS::EC2::SecurityGroup", "AWS::EC2::Subnet", "AWS::EC2::Volume", "AWS::EC2::VPC", "AWS::EC2::VPNConnection", "AWS::EC2::VPNGateway", "AWS::ElasticLoadBalancing::LoadBalancer", "AWS::ElasticLoadBalancingV2::LoadBalancer", "AWS::RDS::DBInstance", "AWS::RDS::DBSecurityGroup", "AWS::RDS::DBSnapshot", "AWS::RDS::DBSubnetGroup", "AWS::RDS::EventSubscription", "AWS::Redshift::Cluster", "AWS::Redshift::ClusterParameterGroup", "AWS::Redshift::ClusterSecurityGroup", "AWS::Redshift::ClusterSnapshot", "AWS::Redshift::ClusterSubnetGroup", "AWS::S3::Bucket"]
}'
上記のコマンドは、require-tagポリシーを作成する手順を示しています。このポリシーは指定したタグがAWSリソースに存在するかをチェックします。ポリシーの詳細や適用対象のリソースタイプに関する情報が提供されています。上記のコマンドを実行することで、require-tagポリシーがAWS Configで組織全体に適用されます。
確認コマンド:
$ aws configservice describe-organization-config-rules
上記の確認コマンドを使用すると、require-tagポリシーが正常に設定され、組織内で適用されていることを確認できます。このコマンドを実行することで、ポリシーの適用状況を確認できます。