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 ユーザーの変更の記録や通知に活用できます。
料金も安く手軽に使えるサービスなので、積極的に使用することをおすすめしますね。

サーバーレス開発については、お気軽にお問い合わせください。