[Terraform]AWS Security Hub 『基礎セキュリティのベストプラクティス』を満たすのに役立つSentinelポリシーライブラリが公開されました
AWS基礎セキュリティのベストプラクティス(Foundational Best Security Practices)を満たすのに役立つSentinelポリシーライブラリが公開されました。
Terraform adds new pre-written Sentinel policies for AWS Foundational Security Best Practices
2024年12月にCIS版のポリシーライブラリが公開されており、今回はAWS基礎セキュリティのベストプラクティス(以降、FSBP)版が公開されました。
pre-written Sentinel policies for AWSとは
以下をご確認ください。
ポリシーの内容
ポリシーの内容はTerraform RegistryやGitHub上から確認できます。
Pre-written Sentinel Policies for AWS FSBP Foundations Benchmarking | Terraform Registry
現時点で、219個のポリシーが存在します。
Security Hubのコントロール1つに対して、1つのポリシーが対応する形です。
FSBPのコントロールは300程度のため、7割程度カバーできていそうです。
やってみた
今回は、公開されているGitHubリポジトリに直接繋いでポリシーを実行してみます。(READMEの「Using the Public GitHub Repository」)
Terraform Registry Methodについては、以下のブログでやっていますので、ご興味があれば合わせてご確認ください。
Policy Setsを作成する
HCP Terraformにログインして、Settings
-> Policy Sets
-> Connect a new policy set
を選択します。
公開されているGitHubリポジトリとつなぐため、Version control provider
を選択します。
Policy set名や適用スコープを設定します。他はデフォルトでOKです。
Name: FSBP-Policy-Set-for-AWS-Terraform
Scope of policies: 任意のスコープを設定してください。(私は自分の検証用Projectを指定しました)
接続先のGitHub Repoを設定します。
Policy RepositoryはGitHubで公開されているため、GitHubを選んで次に進みます。
Repository名を入力して次に進みます。
hashicorp/policy-library-FSBP-Policy-Set-for-AWS-Terraform
以下を設定して、次に進みます。
- Policies path: 空
- VCS branch: release/1.0.0
Sentinel設定ファイル(sentinel.hcl
)がリポジトリのルートにあるため、Policies pathは空で問題ありません。
設定しているVCS branch
は執筆時点の最新のため、GitHubを確認することをおすすめします。
Paramaters
は設定なしでOKです。
Connect policy set
を選択すると、Policy Setが作成されます。
動作確認
適用したProject内のWorkspaceでRunを作成します。
Sentinel policyのチェックが行われていることを確認できました。
デフォルトはポリシーチェックに失敗しても、警告を出すだけ(Advisory)でApplyが可能です。
全てのポリシーチェックが不要・ポリシーによっては失敗時にApplyを止めたいという要件がある場合は、カスタムのSentinel設定ファイルを作ることで実現できます。
おわりに
待望のFSBPのpre-written Sentinel policiesが発表されました。
HashiCorp社のアップデートブログにありましたが、CISの方も50万回以上ダウンロードされているようです。
Security Hubのコントロール相当のポリシーチェックするニーズは結構あるようですね。
CISの方ですが、2024年末時点ではAWSサービス毎にリポジトリが分かれていましたが、現時点では1つのリポジトリになっていました。(FSBPも1つのリポジトリで集約する形をとっています)
ポリシーリポジトリ1つに対してPolicy Set 1つ作る必要があります。
リポジトリがAWSサービス毎に分かれていると、本ブログで取り上げている直接リポジトリにつなぐ方法だと、作成が必要なPolicy Setが多くなります。
1つにまとまったことで、設定が楽になり嬉しいです。
以上、AWS事業本部の佐藤(@chari7311)でした。