重要

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

API キーを使用するためのベストプラクティス

Confluent Cloud 用の Confluent Cloud API キーを使用する際のベストプラクティスとして以下の推奨事項を確認し、それらをセキュリティ戦略に組み込んでください。

本稼働環境用サービスアカウント API キーの使用

Confluent Cloud 用の API キーは、ユーザーアカウントとサービスアカウントを使用して作成できます。サービスアカウント は、Confluent Cloud 内でプログラムによる操作を実行する必要があるアプリケーションやサービスの ID を提供するためのものです。本稼働環境に移行する際には、サービスアカウント API キーだけを使用するようにしてください。開発環境およびテスト環境以外では、ユーザーアカウント API キーの使用は避けてください。ユーザーが退職し、ユーザーアカウントが削除されると、そのユーザーアカウントによって作成されたすべての API キーが削除され、アプリケーションが破損することがあります。

不要な API キーとサービスアカウントの削除

セキュリティ戦略の標準的な手法として、既存の API キーとサービスアカウントを定期的に見直し、クリーンアップする必要があります。

使用中の API キーを把握するために、Confluent Cloud 監査ログ の認可イベントと認証イベントを確認できます。

現在ある API キーを一覧表示するには、confluent api-key list コマンドを実行します。特定のサービスアカウントに関連付けられている API キーだけを一覧表示するには、--service account オプションを使用します。

サービスアカウントを一覧表示するには、confluent iam service-account list コマンドを実行します。

不要になった API キーを削除するには、confluent api-key delete コマンドを実行します。

不要になったサービスアカウントを削除するには、confluent iam service-account delete コマンドを実行します。

API キーの定期的なローテーション

Confluent Cloud リソースへのアクセスは、サービスアカウントに関連付けられた API キーによって制御されます。API キーには、そのサービスアカウントがアクセスできるリソースを決定するアクセス制御機能があります。API キーは、サービスアカウントの ACL と RBAC ロールバインディングに影響することなく作成および破棄できます。API キーのローテーションは、リソースへのアクセス権限を提供し、API キーが漏えいした場合の潜在的な影響を抑えることができる、優れたセキュリティ慣行です。

API キーをローテーションする際には、次のステップを実行します。

  1. 新しい API キーを作成します。
  2. この新しい API キーを使用するように、リソースやアプリケーションをアップデートします。
  3. 古い API キーを削除します。

サービスアカウントは複数のアクティブな API キーを持つことができるため、古いキーを削除しなくても、新しい API キーを作成できます。この短い重複期間があることで、アプリケーションは新しい API キーにアップデートされるまで実行を続けることができます。

重要

サービスアカウントへのアクセスを直ちにブロックするには、関連付けられた ACL と RBAC ロールバインディングを変更するほうが、API キーのローテーションや削除よりも速く、より効率的です。

API キーをローテーションするには以下を実行します。

  1. 次の情報を取得します。

    • サービスアカウント ID

      サービスアカウント ID を取得するには、confluent iam service-account list コマンドを実行します。

      次の例では、2 つのサービスアカウントとその詳細が返されます。

      confluent iam service-account list -o json
      
      [
        {
          "description": "app1 service account",
          "id": "109446",
          "name": "app1-service-account"
        },
        {
          "description": "app2 service account",
          "id": "61837",
          "name": "app2-service-account"
        }
      ]
      
    • リソース ID

      リソース ID を取得するには、confluent kafka cluster list コマンドを実行します。

      次の例では、リソース ID はクラスター情報に含まれています。

      confluent kafka cluster list -o json
      
      [
        {
          "availability": "single-zone",
          "id": "lkc-7kj9o",
          "name": "psd-basic-azure",
          "provider": "azure",
          "region": "centralus",
          "status": "UP",
          "type": "BASIC"
        }
      ]
      
  2. 新しい Kafka API キーを作成します。

    新しい API キーを作成するには、confluent api-key create コマンドを実行します。

    次の例では、API キーが作成され、API キーと API シークレットが表示されています。

    confluent api-key create --service-account 109446 --resource lkc-7kj9o --description "New Kafka API key"
    
    {
      "key": "TSEGMKWIATNPQ6UY",
      "secret": "<secret>"
    }
    
  3. すべての API キーを一覧表示します。

    すべての API キーを一覧表示するには、confluent api-key list コマンドを実行します。

    次の例では、confluent api-key list CLI コマンドにより、Kafka API キーのリストが返されています。

    confluent api-key list --service-account 109446 -o json
    [
      {
        "created": "2021-04-22T15:33:19Z",
        "description": "Kafka API key - new",
        "key": "TSEGMKWIATNPQ6UY",
        "owner": "109446",
        "owner_email": "\u003cservice account\u003e",
        "resource_id": "lkc-7kj9o",
        "resource_type": "kafka"
      },
      {
        "created": "2021-04-22T15:35:41Z",
        "description": "Kafka API key - existing",
        "key": "W75GXRQGUM2BKJOV",
        "owner": "109446",
        "owner_email": "\u003cservice account\u003e",
        "resource_id": "lkc-7kj9o",
        "resource_type": "kafka"
      }
    ]
    
  4. 古いキーを新しい API キーに置き換えます。

    1. この新しい API キーを使用して、クライアントやアプリケーションをアップデートします。
    2. 新しい API キーが正常に機能していることを確認します。

    認証は、クライアントやアプリケーションが最初に Confluent Cloud リソースに接続するときにのみ実行されます。これらの接続は存続期間が長いため、新しい API キーがすぐには使用されないことがあります。

  5. 古い API キーを削除します。

    古い API キーを削除するには、confluent api-key list コマンドを実行します。

    次の例では、API キー W75GXRQGUM2BKJOV が削除されます。

    confluent api-key delete W75GXRQGUM2BKJOV
    
  6. 古い API キーが削除されたことを確認します。

    もう一度 confluent api-key list コマンドを使用して、古い API キーが削除されていることを確認します。

    次の例では、削除されたキー W75GXRQGUM2BKJOV が表示されておらず、新しい API キー TSEGMKWIATNPQ6UY のみが使用できることがわかります。

    confluent api-key list --service-account 109446 -o json
    [
      {
        "created": "2021-04-22T15:33:19Z",
        "description": "Kafka API key - new",
        "key": "TSEGMKWIATNPQ6UY",
        "owner": "109446",
        "owner_email": "\u003cservice account\u003e",
        "resource_id": "lkc-7kj9o",
        "resource_type": "kafka"
      }
    ]
    

古い API キーが削除されていることが確認できたら、API キーが正常にローテーションされたことになります。