8.3. OPA 認可サポートの設定
この手順では、OPA 認可を使用するように Kafka ブローカーを設定する方法を説明します。
作業を開始する前に
特定のユーザーに必要なアクセス、または制限するアクセスについて検討してください。ユーザー リソースと Kafka リソース の組み合わせを使用して、OPA ポリシーを定義できます。
OPA を設定して、LDAP データソースからユーザー情報を読み込むことができます。
スーパーユーザー は、Kafka ブローカーに実装された認可にかかわらず、常に制限なく Kafka ブローカーにアクセスできます。
前提条件
- Streams for Apache Kafka が 各ホストにインストールされており、設定ファイルが使用可能である。
- 接続には OPA サーバーを利用できる必要がある。
- Kafka の OPA authorizer プラグインがある。
手順
Kafka ブローカーで操作を実行するためのクライアントリクエストを承認するのに必要な OPA ポリシーを記述します。
OPA ポリシーの定義 を参照してください。
これで、Kafka ブローカーが OPA を使用するように設定します。
Kafka の OPA authorizer プラグイン をインストールします。
OPA への接続 を参照してください。
プラグインファイルが Kafka クラスパスに含まれていることを確認してください。
以下を Kafka
server.properties設定ファイルに追加し、OPA プラグインを有効にします。authorizer.class.name: com.bisnode.kafka.authorization.OpaAuthorizerKafka ブローカーの
server.propertiesに設定をさらに追加して、OPA ポリシーエンジンおよびポリシーにアクセスします。以下に例を示します。
opa.authorizer.url=https://OPA-ADDRESS/allow1 opa.authorizer.allow.on.error=false2 opa.authorizer.cache.initial.capacity=500003 opa.authorizer.cache.maximum.size=500004 opa.authorizer.cache.expire.after.seconds=6000005 super.users=User:alice;User:bob6 - 1
- (必須) authorizer プラグインがクエリーするポリシーの OAuth 2.0 トークンエンドポイント URL。この例では、ポリシーは
allowという名前です。 - 2
- authorizer プラグインが OPA ポリシーエンジンとの接続に失敗した場合に、クライアントがデフォルトで許可または拒否されるかどうかを指定するフラグ。
- 3
- ローカルキャッシュの初期容量 (バイト単位)。すべてのリクエストについてプラグインに OPA ポリシーエンジンをクエリーする必要がないように、キャッシュが使用されます。
- 4
- ローカルキャッシュの最大容量 (バイト単位)。
- 5
- OPA ポリシーエンジンからのリロードによってローカルキャッシュが更新される時間 (ミリ秒単位)。
- 6
- スーパーユーザーとして扱われるユーザープリンシパルのリスト。これにより、Open Policy Agent ポリシーをクエリーしなくても常に許可されます。
認証および認可オプションの詳細は、Open Policy Agent の Web サイト を参照してください。
- 適切な認可を持つクライアントと持たないクライアントを使用して Kafka ブローカーにアクセスし、設定した権限を確認します。