gRPC API
バージョン0.18.0以降、Falcoには一連のgRPC APIを提供する自身のgRPCサーバーがあります。
現在のAPIは次のとおりです:
- schema definition: Falco出力イベントをサブスクライブします。
- schema definition: Falcoバージョンを取得します。現在のバージョンは0.33.1です。
これらのAPIと対話するために、falcosecurity組織はGoおよびPythonクライアントを提供しています。
設定
Falco gRPCサーバーとFalco gRPC出力APIは、デフォルトでは有効になっていません。
それらを有効にするには、falco.yaml
Falco設定ファイルを編集します。Falco設定ファイルのサンプルを以下に示します:
# gRPC server configuration.
# The gRPC server is secure by default (mutual TLS) so you need to generate certificates and update their paths here.
# By default the gRPC server is off.
# You can configure the address to bind and expose it.
# By modifying the threadiness configuration you can fine-tune the number of threads (and context) it will use.
grpc:
enabled: true
bind_address: "0.0.0.0:5060"
threadiness: 8
private_key: "/tmp/server.key"
cert_chain: "/tmp/server.crt"
root_certs: "/tmp/ca.crt"
# gRPC output service.
# By default it is off.
# By enabling this all the output events will be kept in memory until you read them with a gRPC client.
grpc_output:
enabled: true
証明書
Falco gRPCサーバーは、設計上、相互TLSでのみ機能します。したがって、上記の構成では、証明書を生成してパスを更新する必要があります。
Falcoの作成者は、証明書の生成を間もなく自動化する予定です。
それまでの間、次のスクリプトを使用して証明書を生成します。
注:設定に従って、必ず -passin
, -passout
、および -subj
フラグを設定してください。
有効なCAを生成する
次のコマンドを実行します:
$ openssl genrsa -passout pass:1234 -des3 -out ca.key 4096
$ openssl req -passin pass:1234 -new -x509 -days 365 -key ca.key -out ca.crt -subj "/C=SP/ST=Italy/L=Ornavasso/O=Test/OU=Test/CN=Root CA"
有効なサーバーkey/証明書を生成する
次のコマンドを実行します:
$ openssl genrsa -passout pass:1234 -des3 -out server.key 4096
$ openssl req -passin pass:1234 -new -key server.key -out server.csr -subj "/C=SP/ST=Italy/L=Ornavasso/O=Test/OU=Server/CN=localhost"
$ openssl x509 -req -passin pass:1234 -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
サーバーkeyからパスフレーズを削除する
次のコマンドを実行します:
$ openssl rsa -passin pass:1234 -in server.key -out server.key
有効なクライアントkey/証明書を生成する
次のコマンドを実行します:
$ openssl genrsa -passout pass:1234 -des3 -out client.key 4096
$ openssl req -passin pass:1234 -new -key client.key -out client.csr -subj "/C=SP/ST=Italy/L=Ornavasso/O=Test/OU=Client/CN=localhost"
$ openssl x509 -passin pass:1234 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt
クライアントkeyからパスフレーズを削除
Run the following command:
$ openssl rsa -passin pass:1234 -in client.key -out client.key
使用法
設定が完了すると、FalcoはgRPCサーバーとその出力APIを公開する準備が整います。
これを行うには、シンプルにFalcoを実行します。 例えば:
$ falco -c falco.yaml -r rules/falco_rules.yaml -r rules/falco_rules.local.yaml -r rules/k8s_audit_rules.yaml
Outputイベントを受信して使用する方法については、Go clientまたはPython clientのドキュメントを参照してください。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.