★悩み★
・Open Policy AgentのRego(レゴ)でポリシーを作成する手順を知りたい。
・Open Policy AgentのRegoで作ったポリシーを利用する手順を知りたい。
・Open Policy AgentのRego(レゴ)で作成したポリシーの例を知りたい。
こういった「悩み」に答えます。
★本記事の内容★
① Open Policy AgentのRegoでポリシーを作成するための準備ご紹介
② Open Policy AgentのRego(レゴ)でポリシーを作成する手順をご紹介
これからご紹介する「【入門】Open Policy AgentのRegoでポリシーを作成する手順」を実践したことで、30分以内で「Open Policy AgentのRego(レゴ)でポリシーを作成」できました。
記事の前半では「Open Policy AgentのRego(レゴ)でポリシーを作成するための準備」を解説しつつ、記事の後半では「Open Policy AgentのRego(レゴ)でポリシーを作成する手順」を紹介します。
この記事を読み終えることで、「Open Policy Agentで好きなポリシーを作成できる」状態になります。
ちなみに、「Open Policy Agentとは何か?」に関しては、以下の記事をご覧ください。
また、PythonからOpen Policy Agentのポリシーを利用する手順を知りたい方は、以下の記事をご覧ください。
Open Policy AgentのRegoでポリシーを作成するための準備
「Open Policy AgentのRegoでポリシーを作成するための準備」に関してご紹介します。
★Open Policy AgentのRegoでポリシーを作成するための準備の流れ★
手順1:Open Policy Agentをインストール
手順2:Open Policy Agentの状態確認
上記の流れで、「Open Policy AgentのRegoでポリシーを作成するための準備」ができます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年7月6日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「Open Policy AgentのRegoでポリシーを作成するための準備の流れ」の各手順に関してご説明します。
手順1:Open Policy Agentをインストール
「手順1:Open Policy Agentをインストール」に関してご説明します。
Rego(レゴ)言語を用いてポリシーを作成するためにも、Open Policy Agentをインストールしましょう。
「Open Policy Agentのインストール手順」に関しては、以下の記事「手順1と手順2」をご覧ください。
既にOpen Policy Agentをインストール済みである場合、本手順を省略してください。
以上で、「手順1:Open Policy Agentをインストール」は完了です。
手順2:Open Policy Agentの状態確認
「手順2:Open Policy Agentの状態確認」に関してご説明します。
インストールしたOpen Policy Agentで、Rego(レゴ)言語を用いてポリシーを作成できる状態になっているかを確認しましょう。
「Open Policy Agentの状態確認」に関しては、以下の記事「手順3」をご覧ください。
以上で「手順2:Open Policy Agentの状態確認」は完了です。
上記の流れで、Open Policy AgentのRegoでポリシーを作成するための準備ができました。
Open Policy AgentのRego(レゴ)でポリシーを作成する手順
「Open Policy AgentのRego(レゴ)でポリシーを作成する手順」に関してご紹介します。
★Open Policy AgentのRego(レゴ)でポリシーを作成するまでの流れ★
手順1:Open Policy AgentのRego(レゴ)でポリシーを作成
手順2:Rego(レゴ)で作成したポリシーをOpen Policy Agentで起動
手順3:Open Policy Agent上で起動したポリシーの動作確認
上記手順を実施することで、Open Policy AgentのRego(レゴ)でポリシーを作成できます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年7月6日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「Open Policy AgentのRego(レゴ)でポリシーを作成するまでの流れ」の各手順に関してご説明します。
手順1:Open Policy AgentのRego(レゴ)でポリシーを作成
「手順1:Open Policy AgentのRego(レゴ)でポリシーを作成」に関してご説明します。
Rego(レゴ)言語で簡単なポリシーを作成してみましょう。
Rego(レゴ)言語で作成した簡単なポリシーのプログラムは、以下となります。
package system
main = allow
default allow = false
allow {
input.method = "GET"
input.path = ["test"]
}
上記のプログラムを「opa-test-policy.repo」というファイル名で保存しましょう。
ちなみに、「Rego(レゴ)言語のリファレンスを見たい」方は、以下から見られます。
Regoのリファレンス(公式サイト)
以上で、「手順1:Open Policy AgentのRego(レゴ)でポリシーを作成」は完了です。
手順2:Rego(レゴ)で作成したポリシーをOpen Policy Agentで起動
「手順2:Rego(レゴ)で作成したポリシーをOpen Policy Agentで起動」に関してご説明します。
Rego(レゴ)で作成したポリシーをOpen Policy Agent上で動かしてみましょう。
Rego(レゴ)で作成したポリシーをOpen Policy Agentで起動するために、「端末」または「コマンドプロンプト」上で以下のコマンドを実行してください。
# ./opa run --server /var/tmp/opa-test-policy.repo
{"addrs":[":8181"],"diagnostic-addrs":[],"level":"info","msg":"Initializing server.","time":"2021-07-06T19:55:27+09:00"}
上記のように「Initializing」が表示された場合、「正常にRego(レゴ)で作成したポリシーをOpen Policy Agent上で起動できた」と判断できます。
以上で、「手順2:Rego(レゴ)で作成したポリシーをOpen Policy Agentで起動」は完了です。
手順3:Open Policy Agent上で起動したポリシーの動作確認
「手順3:Open Policy Agent上で起動したポリシーの動作確認」に関してご説明します。
curlコマンドを用いて、Rego(レゴ)言語で作成したポリシーの動作を確認しましょう。
Rego(レゴ)言語で作成したポリシーの動作を確認するために、以下のcurlコマンドを順に実行してください。
# curl http://localhost:8181 -d '{"method": "GET","path": ["test"]}'
true
# curl http://localhost:8181 -d '{"method": "GET","path": [""]}'
false
# curl http://localhost:8181 -d '{"method": "GET","path": ["cars"]}'
false
コマンド実行後、上記のように「pathがtestの場合のみtrueが表示された」場合、「正常にRego(レゴ)言語で作成したポリシーが動作している」と判断できます。
以上で、「手順3:Open Policy Agent上で起動したポリシーの動作確認」は完了です。
上記の流れで、Open Policy AgentのRego(レゴ)言語でポリシーを作成できました。
【まとめ】Open Policy AgentのRegoでポリシーを作成する手順【入門】
今回の記事を通して、「【入門】Open Policy AgentのRegoでポリシーを作成する手順」をご紹介することで、以下の悩みを解消しました。
★悩み★
・Open Policy AgentのRego(レゴ)でポリシーを作成する手順を知りたい。
・Open Policy AgentのRegoで作ったポリシーを利用する手順を知りたい。
・Open Policy AgentのRego(レゴ)で作成したポリシーの例を知りたい。
「Open Policy AgentのRego(レゴ)でポリシーを作成する手順は?」や「Open Policy AgentのRego(レゴ)で作成したポリシーの例は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント