Skip to main content

Cerbosのインストールと設定

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/]