AWS Configのベストプラクティスに関して

AWS Configのベストプラクティスに関して

こんにちは!

今日は、AWS Configのベストプラクティスについてご紹介出来ればと思います。

はじめに

AWS Configについておさらい

AWS Configは、AWS リソースの設定を評価、監査、審査できるサービスとなっています。
運用上のトラブルシューティングであったり、監査、コンプライアンスのユースケースに利用することができます。

ベストプラクティス

1. すべてのアカウントとリージョンでAWS Configを有効にする

これは、Center for Internet Security (CIS)が推奨する方法です。
AWS Configを使用することで、AWSリソースの構成を監査し、構成のベストプラクティスに準拠していることを確認することができます。
AWS CloudFormation StackSetsを利用することで、共通のCloudFormationテンプレートを利用して複数のアカウントやリージョンでAWS Configを有効にすることができます。

2. 設定変更をすべてのリソースタイプに記録する

AWS Configを設定する際に、記録する必要のあるリソースタイプに「すべてのリソース」を選択します。
これにより、AWS Configは60種類以上のリソースタイプをAWSでサポートしているため、監査を確実に行うことができます。
新しいリソースタイプは、この設定を経由して自動的に記録されるようになります。

3. グローバルリソース(IAMリソースなど)は1つのリージョンにのみ記録する

これにより、すべてのリージョンでIAM構成項目の重複コピーが発生しないようになります。
コストも抑えられるメリットもあります。

4. セキュアなAmazon S3バケットであることを確認する

Amazon S3バケットは、AWS Configが記録するリソースの詳細を含む構成履歴と構成スナップショットファイルを受け取ります。
このS3バケットは、一般に読み書き可能な状態にしてはいけません。
S3セキュリティのベストプラクティスに従って、パブリックアクセス可能なバケットを識別する2つのConfigルールをオンにします。

5. AWS Configに割り当てられたIAMロールに適切なパーミッションを設定する

AWS Identity and Access Management (IAM) ロールでは、一連のパーミッションを定義することができます。
AWS Configは、S3バケットへの書き込み、SNSトピックへの公開、Describe APIリクエストやList APIリクエストでAWSリソースの設定詳細を取得するために割り当てたロールを想定しています。
AWS Configコンソールを使用してIAMロールを作成または更新する場合、AWS Configは必要なパーミッションを自動的にアタッチします。

しかし、AWS CLIを使用してAWS Configを設定する場合や、既存のIAMロールを更新する場合は、AWS ConfigがS3バケットにアクセスしたり、SNSトピックにパブリッシュしたり、リソースに関する構成詳細を取得したりできるように、ポリシーを手動で更新する必要があります。

6. AWS Config用のIAMロールを自分で作成したい場合は、AWS管理ポリシーAWSConfigRoleを使用し、IAMロールにアタッチしましょう

AWSは、AWS ConfigがAWSリソースタイプのサポートを追加するたびに、このIAMポリシーを更新します。
つまり、ロールにこのマネージドポリシーがアタッチされている限り、AWS Configは設定の詳細を取得するために必要な権限を持ち続けることになります。

7. 最低でも 1 日 1 回の頻度で定期的なスナップショットをするようにしましょう

これにより、アカウント内のすべてのリソースの最新の構成状態が毎日バックアップされます。

8. カスタムルールのオーサリングには、AWS Configルール開発キット(RDK)を使用する

RDKを使用することで、オーサリングの経験を簡素化し、さまざまなリソースタイプに対応したルールの検証を行うことができます。

9. カスタムAWS ConfigルールのコミュニティベースのソースであるAWS Config Rulesリポジトリを使用する

このリポジトリにより、AWSリソースのセキュリティに関するベストプラクティスに対する評価とコンプライアンスを自動化するための合理化された方法が提供されます。

10. コンフォーマンスパックを使用する

コンフォーマンスパックを使用して、コンフィグルールと修正アクションのパックをアカウントに迅速に展開します。
また、マスターアカウントからAWS Organizationsで組織全体に渡ってパックを一元的に展開することもできます。
このシナリオでは、パックとその内容は不変であり、メンバーアカウントがコンフォーマンスパックを変更したり削除したりすることはできません。

まとめ

AWS Configは少しの設定で、設定変更の記録と通知を行う事が可能です。

運用フェーズでの変更が発生しやすいセキュリティグループやIAMユーザーの変更の記録や通知に活用できます。
料金も安く手軽に使えるサービスなので、積極的に使用することをおすすめしますね。