[Terraform]AWS Security Hub 『基礎セキュリティのベストプラクティス』を満たすのに役立つSentinelポリシーライブラリが公開されました

[Terraform]AWS Security Hub 『基礎セキュリティのベストプラクティス』を満たすのに役立つSentinelポリシーライブラリが公開されました

Clock Icon2025.05.30

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とは

以下をご確認ください。

https://dev.classmethod.jp/articles/pre-written-sentinel-policy-for-aws/

ポリシーの内容

ポリシーの内容はTerraform RegistryやGitHub上から確認できます。

Pre-written Sentinel Policies for AWS FSBP Foundations Benchmarking | Terraform Registry

現時点で、219個のポリシーが存在します。

Security Hubのコントロール1つに対して、1つのポリシーが対応する形です。

Notification_Center.png

FSBPのコントロールは300程度のため、7割程度カバーできていそうです。

https://docs.aws.amazon.com/securityhub/latest/userguide/fsbp-standard.html

やってみた

今回は、公開されているGitHubリポジトリに直接繋いでポリシーを実行してみます。(READMEの「Using the Public GitHub Repository」)

Terraform Registry Methodについては、以下のブログでやっていますので、ご興味があれば合わせてご確認ください。

https://dev.classmethod.jp/articles/pre-written-sentinel-policy-for-aws/

Policy Setsを作成する

HCP Terraformにログインして、Settings -> Policy Sets -> Connect a new policy setを選択します。

Policy_Sets___classmethod-sandbox___HCP_Terraform.png

公開されているGitHubリポジトリとつなぐため、Version control providerを選択します。

Connect_a_policy_set___Policy_set___classmethod-sandbox___HCP_Terraform.png

Policy set名や適用スコープを設定します。他はデフォルトでOKです。

Name: FSBP-Policy-Set-for-AWS-Terraform
Scope of policies: 任意のスコープを設定してください。(私は自分の検証用Projectを指定しました)

Connect_a_policy_set___Policy_set___classmethod-sandbox___HCP_Terraform.png

接続先のGitHub Repoを設定します。

Policy RepositoryはGitHubで公開されているため、GitHubを選んで次に進みます。

Connect_a_policy_set___Policy_set___classmethod-sandbox___HCP_Terraform.png

Repository名を入力して次に進みます。

hashicorp/policy-library-FSBP-Policy-Set-for-AWS-Terraform

Connect_a_policy_set___Policy_set___classmethod-sandbox___HCP_Terraform.png

以下を設定して、次に進みます。

  • Policies path: 空
  • VCS branch: release/1.0.0

スクリーンショット_2025_05_30_11_32.png

Sentinel設定ファイル(sentinel.hcl)がリポジトリのルートにあるため、Policies pathは空で問題ありません。

設定しているVCS branchは執筆時点の最新のため、GitHubを確認することをおすすめします。

Paramatersは設定なしでOKです。

Connect policy setを選択すると、Policy Setが作成されます。

動作確認

適用したProject内のWorkspaceでRunを作成します。

run-by9TYSbDwBokiwXd___Runs___classmethod-sandbox___HCP_Terraform.png

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)でした。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.