マネージド Kafka ACL に ACL エントリを追加する

エントリのリスト全体を置き換えることなく、ACL エントリと呼ばれる新しい権限ルールを 1 つ Managed Kafka ACL リソースに追加できます。これは、特定の権限を段階的に付与する場合に便利です。

このオペレーションは、単一の Apache Kafka ACL バインディングの作成に類似しています。ACL リソースがすでに存在している必要はなく、同時実行制御用の eTag も必要ありません。

必要なロールと権限

ACL エントリを追加するために必要な権限を取得するには、プロジェクトに対する Managed Kafka ACL 編集者 roles/managedkafka.aclEditor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、ACL エントリの追加に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

ACL エントリを追加するには、次の権限が必要です。

  • 親クラスタでこの権限を付与します。 managedkafka.acls.updateEntries

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

マネージド Kafka ACL 編集者roles/managedkafka.aclEditor)ロールには、個々の ACL エントリを追加または削除するために必要な権限が含まれています。詳細については、Google Cloud Managed Service for Apache Kafka の事前定義ロールをご覧ください。

ACL エントリを追加する

  1. Install the Google Cloud CLI.

  2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. gcloud managed-kafka acls add-acl-entry コマンドを実行します。

    gcloud managed-kafka acls add-acl-entry ACL_ID \
      --cluster=CLUSTER_ID \
      --location=LOCATION \
      --principal=PRINCIPAL \
      --operation=OPERATION \
      --permission-type=PERMISSION_TYPE \
      --host=HOST

    次のように置き換えます。

    • ACL_ID(必須): ACL エントリを追加するマネージド Kafka ACL リソースの一意の ID。これは、新しいエントリが適用されるリソース パターンを示します。ACL ID の詳細については、ACL ID をご覧ください。
    • CLUSTER_ID(必須): ACL リソースを含むクラスタの ID。
    • LOCATION(必須): クラスタが配置されているリージョン。サポートされているロケーションをご覧ください。
    • PRINCIPAL(必須): ACL エントリが適用されるプリンシパル(ユーザーまたはサービス アカウント)。User:{google_service_account_email} 形式またはワイルドカード User:* を使用します。
    • OPERATION(必須): ACL エントリが付与または拒否するオペレーション タイプ。使用できる値は、ALLREADWRITECREATEDELETEALTERDESCRIBECLUSTER_ACTIONDESCRIBE_CONFIGSALTER_CONFIGSIDEMPOTENT_WRITE です。
    • PERMISSION_TYPE(省略可、デフォルト値 ALLOW): 構成されたアクセスタイプ(ALLOW または DENY)。
    • HOST(省略可、デフォルト値 *): クライアント ホスト。Google Cloud Managed Service for Apache Kafka の場合、これはワイルドカード '*' に設定する必要があります

サンプル コマンド

次のコマンドを実行して、特定のサービス アカウントが us-central1 リージョンのクラスタ test-clustertest-topic という名前のトピックから読み取れるようにします。

gcloud managed-kafka acls add-acl-entry topic/test-topic \
  --cluster=test-cluster \
  --location=us-central1 \
  --host='*' \
  --operation=READ \
  --permission-type=ALLOW \
  --principal='User:service-account@test-project.iam.gserviceaccount.com' \

出力例を次に示します。

acl:
  aclEntries:
  - host: '*'
    operation: READ
    permissionType: ALLOW
    principal: 'User:service-account@test-project.iam.gserviceaccount.com'
  etag: W/another-new-etag
  name: projects/test-project/locations/us-central1/clusters/test-cluster/acls/topic/test-topic
  patternType: LITERAL
  resourceName: test-topic
  resourceType: TOPIC
aclCreated: false

add-acl-entry コマンドの出力には、結果の ACL 状態に関する情報が表示されます。

  • acl: このセクションでは、新しいエントリが追加された後に更新された ACL リソースについて説明します。
    • aclEntries: この ACL のすべてのアクセス制御エントリを含むリストです。この例では、追加したエントリが追加されます。各エントリには次のフィールドがあります。
      • host: ACL エントリのホスト。
      • operation: このエントリが適用される Kafka オペレーション。
      • permissionType: アクセスが ALLOWDENY か。
      • principal: このエントリのユーザーまたはサービス アカウント。
    • etag: 更新された ACL のエンティティ タグ。これは、後続の更新中にオプティミスティック同時実行制御に使用されます。値は、エントリが追加された後に変更されます。
    • name: ACL リソースの固有識別子。形式は projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id} です。
    • patternType: この ACL のリソース パターンのタイプ。
    • resourceName: この ACL が適用される Kafka リソースの名前。
    • resourceType: Kafka リソースのタイプ。
  • aclCreated: このエントリの追加の結果として ACL リソースが作成されたかどうかを示すブール値。

次のステップ

Apache Kafka® は、Apache Software Foundation または米国その他の諸国における関連会社の商標です。