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