JDDが作成したAWS CloudFormation標準テンプレートの紹介

secure-stack-template-aws By Japan Digital Design

こんにちは。Japan Digital Designのインフラチームでエンジニアをやっている高橋です。
今回は、先日のエントリにもちらっと記載をした、AWS CloudFormation標準テンプレートの取り組みについてご紹介しようと思います。

というわけで、JDD Advent Calendar 25日目です。
(図らずもトリを務めさせていただくことになりました…!)

AWSにおいてシステム開発をする事になった際、まずはAWS上における環境構築が必要になります。

但し、その開発環境構築において思いの外時間を要してしまったり、開発環境ということであまりにもセキュリティ度外視の環境を構築してしまったり…などが考えられると思います。

そのようなシーンを想定して、Japan Digital Designでは、[Secure Stack Template for AWS](AWS-SST)という、CloudFormationの標準テンプレート集を作成し、MIT Licenceにて公開しております。

このテンプレートを利用して環境を構築することで、開発フェーズにおけるAWS環境を迅速に、かつセキュアに維持することができます。

Secure Stack Template for AWS 概要

想定している対象は、AWS Organizationsが有効になっている開発環境アカウントです。

以下のコンセプトを基に作成されています。(以下、GitHubのREADMEより抜粋)

Secure by Default

AWS-SSTのテンプレートは、Secure by Defaultを基本的コンセプトに据えて作成しています。

  • リソースポリシーは他AWSアカウント内からアクセスを許さない
  • エンドポイントポリシーは他AWSアカウントへの書き込みを許さない
  • リソースへのアクセス制御とデータアクセスの権限は分離する

Minimum Execution Permission

AWS-SSTのテンプレートを実行するために必要な権限は、可能な限り最小限のIAM権限で実行可能です。

  • テンプレートが作成するリソース以外のIAM権限を要求しない
  • リソース作成権限に加えてIAM権限を同時に要求しない
  • テンプレートの実行にデータアクセス権限を要求しない

Compliance as a Code Ready

ドリフトチェックに対応するリソースにおいて、テンプレートが作成したポリシーが変更されていないかをドリフトチェックを用いて確認できる。

  • リソースポリシーの変更をドリフトチェックにより確認できる
  • カスタマイズしたリソースポリシーの利用を可能にするため、テンプレートによるリソースポリシーの定義をスキップできる

Secure Stack Template for AWS テンプレート一覧

現状(2020/12/25)では、以下のテンプレートが存在しています。

EC2

Container

Network

S3

Secure Stack Template for AWS の今後について

現状、JDD内部では作成が完了しているものの、まだSecure Stack Templateとして公開に至っていないテンプレートが多々あります。
この辺りを徐々にテンプレート化していけたらと考えています。

また、テンプレートの充実を図ると共に、ドキュメントの整備も並行して進めていきたい所存です。
(個人的には、テンプレートにおける構成図管理などもうまくやれたらうれしいな…とおもっています)

もちろんGitHubに公開しているものなので、ぜひ皆様のコントリビュートもお待ちしております。

たくさんの方々と一緒により良いものを作っていき、AWSを利用している全ユーザに活用してもらえたら!と願うばかりです。