Cerbosは複数の方法でインストールできます。ここでは、主要なインストール方法と基本的な設定について説明します。
インストール方法 #
コンテナを使用する方法 #
Dockerがあれば、公開されているイメージを簡単に使用できます。
docker run --rm --name cerbos -p 3592:3592 -p 3593:3593 ghcr.io/cerbos/cerbos:0.41.0
デフォルトでは、コンテナはポート3592(HTTP)と3593(gRPC)でリッスンし、/policies
にマウントされたボリュームでポリシーファイルを監視するように設定されています。
ポリシーを保存するディレクトリを作成します:
mkdir -p cerbos-quickstart/policies
設定ファイルを作成します:
cat > cerbos-quickstart/.cerbos.yaml <<EOF
server:
httpListenAddr: ":3592"
storage:
driver: "disk"
disk:
directory: /quickstart/policies
watchForChanges: true
EOF
新しい設定ファイルでコンテナを起動します:
docker run --rm --name cerbos -d -v $(pwd)/cerbos-quickstart:/quickstart -p 3592:3592 -p 3593:3593 ghcr.io/cerbos/cerbos:0.41.0 server --config=/quickstart/.cerbos.yaml
バイナリを使用する方法 #
Dockerを使用していない場合は、リリースバイナリを直接使用することもできます。
バイナリを実行するには、最小限のサーバー設定ファイルを作成する必要があります:
---
server:
httpListenAddr: ":3592"
storage:
driver: "disk"
disk:
directory: policies
この設定を.cerbos.yaml
という名前のファイルに保存します。また、空のポリシーフォルダpolicies/
も作成する必要があります。
バイナリを展開して実行します:
./cerbos server --config=.cerbos.yaml
Helm Chartを使用する方法(Kubernetes) #
Kubernetesを使用している場合は、Helm Chartを使用してCerbosをデプロイできます:
helm repo add cerbos https://charts.cerbos.dev
helm repo update
helm install cerbos cerbos/cerbos -n cerbos --create-namespace
設定ファイル #
Cerbosの設定は、YAML形式の設定ファイルで行います。主要な設定セクションは以下の通りです:
サーバー設定 #
server:
httpListenAddr: ":3592" # HTTPサーバーがリッスンするポート
grpcListenAddr: ":3593" # gRPCサーバーがリッスンするポート
ストレージ設定 #
storage:
driver: "disk" # ストレージドライバー(disk, git, blob, hubなど)
disk:
directory: "/path/to/policies" # ポリシーファイルのディレクトリ
watchForChanges: true # ファイルの変更を監視するかどうか
監査設定 #
audit:
enabled: true # 監査ログを有効にするかどうか
backend: "local" # 監査ログのバックエンド(local, hubなど)
local:
storagePath: "/path/to/audit/logs" # 監査ログの保存先
スキーマ設定 #
schema:
enforcement: "reject" # スキーマ検証の強制レベル(reject, warn, noneなど)
環境変数による設定 #
設定ファイルの代わりに、環境変数を使用してCerbosを設定することもできます。環境変数はCERBOS_
プレフィックスで始まり、設定パスはアンダースコアで区切ります。
例えば:
export CERBOS_SERVER_HTTPLISTENADDR=":3592"
export CERBOS_STORAGE_DRIVER="disk"
export CERBOS_STORAGE_DISK_DIRECTORY="/path/to/policies"
Cerbos Hubとの接続 #
Cerbos Hubを使用している場合は、以下のように設定します:
server:
httpListenAddr: ":3592"
grpcListenAddr: ":3593"
hub:
credentials:
pdpID: "my-pdp" # このCerbosインスタンスの識別子(オプション)
clientID: "client-id" # クライアントID
clientSecret: "client-secret" # クライアントシークレット
workspaceSecret: "workspace-secret" # バンドルを復号化するためのワークスペースシークレット
storage:
driver: hub
hub:
remote:
bundleLabel: latest # ロードするポリシーのラベル
環境変数を使用する場合:
docker run --rm --name cerbos \
-p 3592:3592 -p 3593:3593 \
-e CERBOS_HUB_BUNDLE="latest" \
-e CERBOS_HUB_WORKSPACE_SECRET="workspace-secret" \
-e CERBOS_HUB_CLIENT_ID="client-id" \
-e CERBOS_HUB_CLIENT_SECRET="client-secret" \
ghcr.io/cerbos/cerbos:latest server
起動と確認 #
Cerbosを起動したら、http://localhost:3592
にアクセスしてAPIドキュメントを確認できます。また、以下のコマンドでヘルスチェックを行うこともできます:
curl http://localhost:3592/health
正常に動作している場合は、以下のようなレスポンスが返ります:
{"status":"OK"}
[出典: https://docs.cerbos.dev/cerbos/latest/installation/]