IAM を使用したアクセス制御

このドキュメントでは、Pub/Sub Lite のアクセス制御オプションについて説明します。 Pub/Sub Lite は、Identity and Access Management を使用してアクセス制御を行います。

ユーザーまたはアプリケーションに Pub/Sub Lite リソースへのアクセスを許可するには、少なくとも 1 つの事前定義されたロールか、カスタムロールをアプリケーションが使用するユーザーまたはサービス アカウントに付与します。ロールには、Pub/Sub Lite リソースに対して特定のアクションを実行する権限が含まれます。

事前定義ロール

次の表に、Pub/Sub Lite リソースへのアクセスを許可する事前定義済みのロールを一覧表示します。

ロール タイトル 説明 権限
roles/pubsublite.admin Pub/Sub Lite 管理者 Lite トピックと Lite サブスクリプションへの完全アクセス権。 pubsublite.*
roles/pubsublite.editor Pub/Sub Lite 編集者 Lite トピックと Lite サブスクリプションを変更し、Lite トピックにメッセージをパブリッシュして、Lite サブスクリプションからメッセージを受信します。 pubsublite.*
roles/pubsublite.publisher Pub/Sub Lite パブリッシャー Lite トピックにメッセージをパブリッシュします。
  • pubsublite.topics.getPartitions
  • pubsublite.topics.publish
  • pubsublite.locations.openKafkaStream
  • roles/pubsublite.subscriber Pub/Sub Lite サブスクライバー Lite サブスクリプションからメッセージを受信します。
    • pubsublite.operations.get
    • pubsublite.subscriptions.getCursor
    • pubsublite.subscriptions.seek
    • pubsublite.subscriptions.setCursor
    • pubsublite.subscriptions.subscribe
    • pubsublite.topics.computeHeadCursor
    • pubsublite.topics.computeMessageStats
    • pubsublite.topics.computeTimeCursor
    • pubsublite.topics.getPartitions
    • pubsublite.topics.subscribe
    • pubsublite.locations.openKafkaStream
    roles/pubsublite.viewer Pub/Sub Lite 閲覧者 Lite トピックと Lite サブスクリプションを表示します。
    • pubsublite.operations.get
    • pubsublite.operations.list
    • pubsublite.subscriptions.get
    • pubsublite.subscriptions.getCursor
    • pubsublite.subscriptions.list
    • pubsublite.topics.get
    • pubsublite.topics.getPartitions
    • pubsublite.topics.list
    • pubsublite.topics.listSubscriptions

    カスタムロール

    カスタムロールには、指定した権限を含めることができます。Lite トピックの更新や Lite サブスクリプションの削除など、特定の管理オペレーションを実行する権限を含むカスタムロールを作成できます。カスタムロールを作成するには、カスタムロールの作成と管理をご覧ください。

    次の表に、カスタムロールの例を一覧表示します。

    説明 権限
    Lite の予約を作成、管理する。
    • pubsublite.reservations.create
    • pubsublite.reservations.update
    • pubsublite.reservations.get
    • pubsublite.reservations.list
    • pubsublite.reservations.delete
    Lite トピックを作成して管理します。
    • pubsublite.topics.create
    • pubsublite.topics.update
    • pubsublite.topics.get
    • pubsublite.topics.getPartitions
    • pubsublite.topics.list
    • pubsublite.topics.listSubscriptions
    • pubsublite.topics.delete
    Lite サブスクリプションを作成して管理します。
    • pubsublite.subscriptions.create
    • pubsublite.topics.subscribe
    • pubsublite.subscriptions.update
    • pubsublite.subscriptions.get
    • pubsublite.subscriptions.list
    • pubsublite.subscriptions.delete
    Lite トピックと Lite サブスクリプションを作成します。
    • pubsublite.topics.create
    • pubsublite.subscriptions.create
    • pubsublite.topics.subscribe
    Lite トピックと Lite サブスクリプションを変更します。
    • pubsublite.topics.update
    • pubsublite.subscriptions.update
    Lite トピックと Lite サブスクリプションを削除する。
    • pubsublite.topics.delete
    • pubsublite.subscriptions.delete

    ロールの付与

    プロジェクト レベルで Pub/Sub Lite リソースにアクセスするためのロールを付与できます。たとえば、サービス アカウントにプロジェクト内の任意の Lite トピックを表示するための権限を付与できますが、単一の Lite トピックを表示するための権限は付与できません。

    プロジェクトに対するロールを付与するには、Google Cloud コンソールまたは Google Cloud CLI を使用します。

    Console

    ユーザー、サービス アカウント、またはその他のメンバーにロールを付与するには、次の手順を行います。

    1. Google Cloud コンソールの [IAM] ページに移動します。

    IAM に移動

    1. [追加] をクリックします。

    2. ユーザー、サービス アカウント、その他のメンバーのメールアドレスを入力します。

    3. ロールを選択します。

    4. [保存] をクリックします。

    gcloud

    ユーザー、サービス アカウント、またはその他のメンバーにロールを付与するには、gcloud projects add-iam-policy-binding コマンドを実行します。

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=MEMBER \
    --role=ROLE_ID
    

    以下を置き換えます。

    また、現在の IAM ポリシーを含む JSON ファイルまたは YAML ファイルを取得して、複数のロールやメンバーをファイルに追加し、ポリシーを更新することもできます。ポリシーの読み取りと管理には、Google Cloud CLI、IAM API、または IAM を使用します。詳細については、プログラムによるアクセスの制御をご覧ください。

    次のステップ