【入門】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でポリシーを作成する手順」を実践したことで、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(レゴ)で作成したポリシーの例は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

コメント