重要

このページの日本語コンテンツは古くなっている可能性があります。最新の英語版コンテンツをご覧になるには、こちらをクリックしてください。

API キーを使用したアクセス制御

Confluent Cloud API キーは、Confluent Cloud コンポーネントおよびリソースへのアクセスを制御するために使用されます。各 API キーは、キーとシークレットで構成されます。ユーザーアカウントとサービスアカウントの使用およびその API キーの所有権の詳細については、「API キーの所有権」を参照してください。

リソース別 API キー を使用して、Confluent Cloud コンポーネントおよびサービスへのアクセスを制御します。以下は Confluent Cloud コンポーネントの API キーです。

リソース別 API キー 説明
Kafka Kafka クラスター と Kafka リソースにアクセスするために必要です。各 Kafka API キーは 1 つの特定の Kafka クラスターに対して有効です。
スキーマレジストリ Confluent Cloud Schema Registry にアクセスするために必要です。各 スキーマレジストリ API キーは 1 つの特定の スキーマレジストリ に対して有効です。
ksqlDB Confluent Cloud の ksqlDB アプリケーション を操作するために必要です。各 ksqlDB API キーは 1 つの特定の ksqlDB アプリケーションに対して有効です。

Confluent Cloud リソースへのアクセスを制御し、環境、ユーザーアカウント、サービスアカウント、コネクター、メトリクス API、その他のリソースで利用できる Confluent Cloud API を使用するには、Cloud API キー を使用します。

Confluent Cloud で API キーを作成して管理するには、次のツールを使用できます。

API キーの使用に関する推奨事項については、「API キーを使用するためのベストプラクティス」を参照してください。

API キーの所有権

各 API キーは、特定の サービスアカウント または ユーザーアカウント に関連付けられます。ユーザーアカウントまたはサービスアカウントに関連付けることができる API キー数の制限は、「Confluent Cloud のサービスクォータ」に記載されています。

  • ベストプラクティスとして、アプリケーションやユースケースごとに、API キーに関連付ける別個のサービスアカウントを作成することをお勧めします。
  • サービスアカウントに関連付けられた API キーを使用するアプリケーションへのアクセスを制限するには、以下を使用します。

注意

ユーザーアカウントまたはサービスアカウントを削除すると、関連付けられている API キーもすべて削除されます。削除された API キーを使用しているクライアントアプリケーションはアクセスできなくなるので、ストリーミングアプリケーションが停止する可能性があります。ユーザーアカウントやサービスアカウントを削除する前に、必ず、そのアカウントが所有している API キーが使用されていないことを確認してください。

リソース別 API キー

特定の Confluent Cloud コンポーネントおよびサービスへのアクセスを制御するには、リソース別 API キー を使用します。リソース別 API キーは、Kafka、スキーマレジストリ、および ksqlDB リソースで使用できます。

リソース別 API キーは、1 つの特定のリソース(1 つの Kafka クラスター、1 つの スキーマレジストリ、または 1 つの ksqlDB アプリケーション)に対して有効です。

重要

リソース別 API キーは作成後すぐに(通常は数分以内)伝播されます。伝播が完了する前に API キーを使用しようとすると、認証が失敗します。ワークロードによっては、再試行するまでにさらに 2、3 分待たなければならない場合があります。

リソース別 API キーの作成

リソース別 API キーは、Kafka クラスター、スキーマレジストリ、および ksqlDB アプリケーションに対して作成できます。

前提条件
  1. サービスアカウントに必要な アクセス制御リスト(ACL) が設定されていることを確認します。

    重要

    サービスアカウントに関連付けられた Kafka API キーを作成する前に、アクセスを制限する ACL を設定する必要があります。ACL が構成されていないと、API キーにアクセス権限が与えられません。

    スキーマレジストリ と ksqlDB では、アクセス制御は利用できません。

  2. confluent login CLI コマンドを使用して、クラスターにサインインします。

    confluent login
    
    Enter your Confluent Cloud credentials:
    Email: susan@myemail.com
    Password:
    
  3. Kafka、スキーマレジストリ、または ksqlDB のリソース ID(<resource-id>)を取得します。リソース ID を調べるには、次の Confluent CLI コマンドを使用します。

    • Kafka: confluent kafka cluster list
    • スキーマレジストリ: confluent schema-registry cluster describe
    • ksqlDB: confluent ksql app list
  4. confluent api-key create コマンドを使用して、新しい API キーとシークレットを作成します。

    confluent api-key create --service-account <service-account-id> --resource <resource-id> --description <prod key>
    
  5. API キーとシークレットの出力をセキュアな場所に保管します。このシークレットを後から取得することはできません。

    ちなみに

    別のプロセスで作成された API キーとシークレットを登録してローカルに保存するには、confluent api-key store コマンドを実行して、API キー(<api-key>)、API シークレット(<api-secret>)、リソース ID(<resource-id>)を指定します。

    confluent api-key store <api-key> <api-secret> --resource <resource-id>
    
  6. confluent api-key use コマンドを使用して、リソースに対して Confluent CLI コマンドを実行するときに使用する API キーとシークレットを指定します。ただし、スキーマレジストリ リソースに限っては、使用する API キーを指定する必要はありません。

    confluent api-key use <api-key>
    

リソース別 API キーの説明の編集

必要に応じて API キーの説明を追加、編集、または削除するには、以下の手順に従います。

リソース別 API キーの説明を編集するには、confluent api-key update コマンドを使用します。

confluent api-key update <api-key> --description <description-string>

Confluent Cloud Console を使用したリソース別 API キーの削除

API キーが不要になった場合や、シークレットが侵害された場合は、API キーを削除することをお勧めします。

警告

When a resource is deleted, associated API keys are also deleted.

  1. Kafka、スキーマレジストリ、または ksqlDB のリソースに対応する API Access タブから、削除するキーをクリックします。

  2. ごみ箱アイコンをクリックします。Confirm API key deletion ダイアログが表示されます。

  3. Confirm をクリックします。

    注意

    API キーの削除操作は元に戻せません。

既存のユーザーアカウントに関連付けられた Kafka API キーの作成

新規 Kafka API キーを作成して、既存のユーザーアカウントに関連付けることができます。

  1. Kafka API キーを作成するクラスターに移動します。
  2. API access タブ、+ Add key の順にクリックします。
  3. Create an API key associated with your account をクリックします。このオプションを指定すると、新規 API キーが、既存のユーザーアカウントに対して既に指定されているアクセス許可と同じアクセス許可を継承することになります。
  4. 説明を入力し、API キーとシークレットを安全な場所に保存してから、キーとシークレットを保存したことを示すチェックボックスをオンにします。Save をクリックします。

Cloud API キーの数

Confluent Cloud リソースへのアクセスを制御し、環境、ユーザーアカウント、サービスアカウント、コネクター、メトリクス API、その他のリソースで利用できる Confluent Cloud API を使用するには、Cloud API キー を使用します。

重要

Cloud API キーの対象範囲は、特定のリソースだけではなく、組織全体です。

Cloud API キーの作成

前提条件
  1. confluent login コマンドを使用して、クラスターにサインインします。

    confluent login
    
    Enter your Confluent Cloud credentials:
    Email: susan@myemail.com
    Password:
    
  2. サービスアカウントに関連付けられた Cloud API キーを作成する前に、RBAC を使用して、そのキーを使用するアプリケーションへのアクセスを制限します。

  3. confluent api-key create コマンドを使用して Cloud API キーを作成します。このとき、サービスアカウント(--service-account)を指定し、リソース(--resource)を cloud に設定して、必要に応じて説明(--description)を指定します。

    confluent api-key --service-account <service-account-id> create --resource cloud --description <key-description>
    
  4. API キーとシークレットの出力をセキュアな場所に保管します。このシークレットを後から取得することはできません。

    ちなみに

    既存の API キーとシークレットを使用するには、リソース ID(cloud)、API キー(<api-key>)、および API シークレット(<api-secret>)を指定して次のコマンドを実行します。このコマンドは、別のプロセスで作成された API キーとシークレットを登録し、ローカルに保管します。

    confluent api-key store <api-key> <api-secret> --resource cloud
    

重要

ユーザーが API キーを作成したクラスターから、そのユーザーのロールの割り当てを削除した場合、ロールの割り当てが削除された後も API キーは機能し続けます。例を次に示します。

  • Bob には OrganizationAdmin ロールが割り当てられています。
  • Bob が Prod_1 環境の cluster_1 に対する API キーを作成します。
  • Bob のロールがアップデートされ、Prod_1 の OrganizationAdmin ロールは、もう Bob にはありません。彼には、新たに Dev_1 環境の EnvironmentAdmin ロールが割り当てられました。
  • cluster_1 に対しては、Bob が作成した API キーが引き続き機能します。

このようなケースで、意図しないアクセスを招く可能性がある場合には、API キーを削除する必要があります。

# List the API keys owned by Bob
confluent api-key list --"Bob"
# Delete the API key that Bob created
confluent api-key delete <api-key>