AWS CloudFormation のセキュリティのベストプラクティス - AWS CloudFormation

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

AWS CloudFormation のセキュリティのベストプラクティス

AWS CloudFormation には、独自のセキュリティポリシーを開発および実装する際に考慮する必要のあるいくつかのセキュリティ機能が用意されています。以下のベストプラクティスは一般的なガイドラインであり、完全なセキュリティソリューションに相当するものではありません。これらのベストプラクティスはお客様の環境に適切ではないか、十分ではない場合があるため、これらは処方箋ではなく、有用な考慮事項と見なしてください。

IAM を使用したアクセス制御

IAM は AWS のユーザーとそのアクセス権限を管理できる AWS サービスです。IAM と AWS CloudFormation を使用して、スタックテンプレートの表示、スタックの作成、スタックの削除など、ユーザーが実行できる AWS CloudFormation アクションを指定できます。さらに、AWS CloudFormation スタックを管理するには、そのスタックのリソースに対するアクセス権限が必要です。たとえば、ユーザーが AWS CloudFormation を使用して Amazon EC2 インスタンスを、起動、更新、終了する場合、そのユーザーは関連する Amazon EC2 アクションを呼び出す権限を持っている必要があります。

ほとんどの場合、ユーザーがテンプレートのすべてのリソースを管理するにはフルアクセスが必要です。AWS CloudFormation は、ユーザーに代わってそれらのリソースを作成、変更、削除するための呼び出しを行います。ユーザーと AWS CloudFormation サービスの間でアクセス許可を分割するには、サービスロールを使用します。AWS CloudFormation では、サービスロールのポリシーを使用して、ユーザーのポリシーに代わって呼び出しを行います。詳細については、「AWS CloudFormation サービスロール」を参照してください。

テンプレートに認証情報を埋め込まない

AWS CloudFormation テンプレートに機密情報を埋め込むのではなく、スタックテンプレートで 動的なリファレンス を使用することをお勧めします。

動的なリファレンスにより、AWS Systems Manager パラメータストアや AWS Secrets Manager などの他のサービスで保存、管理されている外部値を参照するためのシンプルで強力な方法が提供されます。動的なリファレンスを使用すると、CloudFormation は、スタックオペレーションおよび変更セットオペレーション中に指定されたリファレンスの値を取得して、その値を適切なリソースに渡します。ただし、CloudFormation が実際の参照値を保存することはありません。詳細については、「動的な参照を使用してテンプレート値を指定する」を参照してください。

AWS Secrets Manager を使用すると、データベースやその他のサービスの認証情報を安全に暗号化、保存、取得できます。AWS Systems Manager パラメータストア は、設定データ管理のための安全な階層型ストレージを提供します。

起動テンプレートのパラメータの詳細については、「パラメータ」を参照してください。

AWS CloudTrail を使用して AWS CloudFormation 呼び出しを記録する

AWS CloudTrail は、AWS アカウントで AWS CloudFormation API を呼び出したすべてのユーザーを追跡します。API 呼び出しは、AWS CloudFormation API、AWS CloudFormation コンソール、バックエンドコンソール、または AWS CloudFormation AWS CLI コマンドの使用時にログに記録されます。ログ記録を有効にして Amazon S3 バケットを指定し、ログを保存します。こうすることで、必要ならばアカウントで誰がどのような AWS CloudFormation 呼び出しを行ったかを監査できます。詳細については、「AWS CloudTrail による AWS CloudFormation API コールのログ記録」を参照してください。