API へのアクセス権の付与と取り消し

誰が API にアクセスできるかを制御することは、開発の重要な部分です。たとえば API をテストする際に、適切な権限を持つサービス アカウントを使って更新後の Cloud Endpoints 構成の再デプロイを自動化することができます。デフォルトでは、プロジェクト オーナーだけが API へのアクセスを管理できます。このページでは、GCP Console または gcloud コマンドライン ツールを使用して API へのアクセス権を付与したり、取り消したりする方法を示します。

Endpoints では Cloud Identity and Access Management の役割を使用して API レベルでアクセス権を付与したり、取り消したりします。アクセス権の付与と取り消しを、ユーザー、サービス アカウント、Google グループに対して行うことができます。

Google グループを使用すると、ユーザーの集合に対してのアクセス権の付与や取り消しが簡単に行えます。個々のユーザーまたはサービス アカウントに対してアクセス権の付与または取り消しを 1 つずつ行う代わりに、グループ全体に対して一度にアクセス権の付与または取り消しを行えます。また、メンバーごとに Cloud IAM の役割の付与または取り消しを行う代わりに、Google Group で簡単にメンバーを追加および削除できます。

アクセス権の付与

GCP Console

  1. GCP Console で、プロジェクトの [エンドポイント] > [サービス] ページに移動します。

    [エンドポイント サービス] ページに移動

  2. API が複数ある場合は、API の名前をクリックします。
  3. [権限] サイドパネルが開いていない場合は、[add 権限] をクリックします。
  4. [メンバーを追加] ボックスに、ユーザー、サービス アカウント、または Google グループのメールアドレスを入力します。
  5. [役割を選択] プルダウンで、[サービス管理] をクリックし、以下のいずれかの役割を選択します。
    • Service Config 編集者: この役割には、Service Management が Endpoints 構成を既存のサービスにデプロイするために必要な最小限の権限が含まれています。
    • Service Management 管理者: この役割には、Service Config 編集者、サービス ユーザー、サービス コントローラの各役割に含まれる権限に加え、gcloud を使用して、またはリソースへのアクセス権の付与、変更、取り消しで説明されているプログラム手法を使用して、この API へのアクセス権を付与するために必要な権限が含まれています。

    GCP Console で他の役割を選択することもできますが、それらの役割は API の管理には役立ちません。

  6. [追加] をクリックして、指定した Cloud IAM 役割にメンバーを追加します。
  7. 必要に応じて、メンバーの追加と役割の選択を繰り返します。
  8. Service Management の役割を持つユーザーは、GCP Console の [エンドポイント] > [サービス] ページにアクセスできません。ユーザーが [エンドポイント] > [サービス] ページにアクセスできるようにするには、プロジェクトに対するプロジェクト閲覧者以上の役割をユーザーに付与する必要があります。詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。

gcloud

  1. Cloud Shell を開きます。あるいは、Cloud SDK がインストール済みの場合はターミナル ウィンドウを開きます。
  2. 該当する gcloud コマンドを入力します。
    • ユーザーにアクセス権を付与する場合は、次のコマンドを実行します。
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      役割には、以下のいずれかの Cloud IAM 役割を指定します。

      • roles/servicemanagement.configEditor: この役割には、Endpoints 構成を既存のサービスにデプロイするために Service Management で必要な最小限の権限が含まれています。
      • roles/servicemanagement.admin: この役割には、roles/servicemanagement.configEditorroles/servicemanagement.serviceConsumerroles/servicemanagement.serviceController に含まれる権限に加え、gcloud を使用して、またはリソースへのアクセス権の付与、変更、取り消しで説明されているプログラム手法を使用して、この API へのアクセス権を付与するために必要な権限が含まれています。

      例:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/servicemanagement.admin'

    • サービス アカウントにアクセス権を付与する場合は、次のコマンドを実行します。
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      例:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'

    • Google グループにアクセス権を付与する場合は、次のコマンドを実行します。
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='group:[GROUP-NAME]@googlegroups.com' \
        --role='[ROLE]'

      例:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='group:example-group@googlegroups.com' \
        --role='roles/servicemanagement.configEditor'

  3. Service Management の役割を持つユーザーは、GCP Console の [エンドポイント] > [サービス] ページにアクセスできません。ユーザーが [エンドポイント] > [サービス] ページにアクセスできるようにするには、プロジェクトに対するプロジェクト閲覧者以上の役割をユーザーに付与する必要があります。詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。

アクセス権を取り消す

API へのアクセス権を取り消すには、Cloud IAM 役割を持っているメンバーから、その役割を削除します。

GCP Console

  1. GCP Console で、プロジェクトの [エンドポイント] > [サービス] ページに移動します。

    [エンドポイント サービス] ページに移動

  2. API が複数ある場合は、API の名前をクリックします。
  3. [権限] サイドパネルが開いていない場合は、[add 権限] をクリックします。
  4. アクセス権を取り消すメンバーを見つけます。該当する [役割] カードをクリックしてメンバーのリストを表示するか、[メンバー検索] ボックスに名前または役割を入力します。
  5. [削除] delete をクリックします。
  6. GCP プロジェクトへのユーザー アクセス権も一緒に取り消す場合、詳しくはリソースへのアクセス権の付与、変更、取り消しをご覧ください。

gcloud

  1. Cloud Shell を開きます。あるいは、Cloud SDK をインストール済みの場合はターミナル ウィンドウを開きます。
  2. 該当する gcloud コマンドを入力します。
    • ユーザーのアクセス権を取り消す場合は、次のコマンドを実行します。
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      例:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/editor'
    • サービス アカウントのアクセス権を取り消す場合は、次のコマンドを実行します。
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      例:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'
    • Google グループのアクセス権を取り消す場合は、次のコマンドを実行します。
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
            --member='group:[GROUP-NAME]@googlegroups.com' \
            --role='[ROLE-NAME]'

      例:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
            --member='group:example-group@googlegroups.com' \
            --role='roles/viewer'
  3. GCP プロジェクトへのユーザー アクセス権も一緒に取り消す場合、詳しくはリソースへのアクセス権の付与、変更、取り消しをご覧ください。

次のステップ

以下の内容について学習します。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

App Engine 用 Cloud Endpoints Frameworks
ご不明な点がありましたら、Google のサポートページをご覧ください。