HashicorpのSentinelを触ってみた

投稿者: | 2017/09/21

HashicorpからSentinelという新プロダクトがリリースされたので、Getting Startedをやってみました。

Sentinelとは

アクセスポリシーを評価するコードフレームワークで「Policy as Code」を実現しています。
アクセスポリシーの評価というと、AWSではAWS Config Rules、GCPではCloud Audit Loggingがありますが、Sentinelは単体で使用するのではなく、他のHashicorp製品と組み合わせてコードに埋め込むことを想定しているようです。また、マルチクラウドで互換性があることもメリットがあります。

インストール

以下の実行環境で行いました。

  • Mac OS El Capitan 10.11.6

ポリシーの記述

policy.sentinelというファイル名でポリシーを作成します。

sentinel apply で実行します。

ポリシーを変えてみて実行すると、ポリシーに反しているため失敗します。

以下のようにルールを分けて書くこともできます。

色んな論理式を書くこともできます。詳細はドキュメントを参照ください。

プラグインをimportすることで記述表現が増えます。独自のプラグインも自作することができるようです。

テスト

テスティングフレームワークも備えています。

ポリシーを以下のように書き、

テストを test/policy/good.json に書きます。

sentinel test でテスト実行されます。

他Hashicorp製品との連携

まだSentinelが組み込まれていないため、ドキュメントに載っているサンプル例のみの情報です。
(私はまだConsulとTerraformしか触ったことがないため、NomadとVaultは省略します)。

Consulは、KVSに格納するKey/Valueをバリデーションしてくれるみたいです。
https://docs.hashicorp.com/sentinel/app/consul/

Terraformは、リソースの作成前にポリシーをチェックし、反した場合はリソースを作成しないようにできます。
https://docs.hashicorp.com/sentinel/app/terraform/

最後に

Sentinel単体だとあまり実用性がないように感じますが、他のHashicorp製品と組み合わせることで、威力を発揮するプロダクトだと思います。
しかし、エンタープライズ版のみ機能がサポートされるようですので、無料の範囲内で使う場合にはSentinelはあまり使わないのかもしれません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*