IAM を使用してアクセスを制御する

Workflows は Identity and Access Management(IAM)を使用して、認証されたユーザーとサービス アカウントがどのアクションを実行できるかを制御します。

Workflows のリソースに対するアクセスの認証と認可を開始する前に、IAM の基本コンセプトを理解しておいてください。

このページでは、ワークフローの実行を呼び出す権限など、Workflows のリソースへのアクセスに必要な権限について詳しく説明します。

ワークフローに他のサービスにアクセスするための権限を付与することについては、ワークフローにリソースへのアクセス権限を付与する Google Cloud をご覧ください。

アクセス制御

認証の実装方法に関係なく、アクセス制御と使用可能な Workflows のロールを理解することが重要です。ロールは、 Google Cloud内のリソースへのアクセス権を付与する権限のコレクションです。本番環境アプリケーションを作成するときは、該当する API、機能、リソースを操作するために必要なロールのみをサービス アカウントに付与します。 Google Cloud

使用可能な Workflows のロールの詳細については、Workflows のロールと権限をご覧ください。

Workflows を呼び出す

サービス アカウントは、ID であると同時に IAM ポリシーを受け入れるリソースでもあります。つまり、サービス アカウントにロールを付与し、他のプリンシパルがそのサービスアカウントの権限を借用できるようにするには、サービス アカウントまたはサービス アカウントの親リソースの 1 つに対するロールを他のプリンシパルに付与します。

たとえば、サービス アカウントに workflows.invoker ロールを付与して、そのアカウントにワークフロー実行をトリガーする権限を持たせることができます。この場合、プリンシパルはサービス アカウントの権限を借用、またはサービス アカウントとして動作できます。ワークフローがそれ自体や他のワークフローを呼び出す場合を除き、ワークフロー サービス アカウントには workflows.invoker のロールは必要ありません。

サービス アカウントの権限借用の詳細については、サービス アカウントの権限借用をご覧ください。

Workflows を呼び出すサービスのサービスアカウントに Workflows 起動元ロール(roles/workflows.invoker)を付与して、ワークフローを実行し実行を管理する権限を保有する状態にするには、次のようにします。

Console

  1. Google Cloud コンソールで、[サービス アカウント] ページに移動します。
    サービス アカウントに移動

  2. プロジェクトを選択し、[サービス アカウントを作成] をクリックします。

  3. [サービス アカウント名] フィールドに名前を入力します(例: sa-name)。

  4. [作成して続行] をクリックします。

  5. [ロールを選択] リストで、[Workflows] > [Workflows 起動元] を選択します。

  6. [完了] をクリックします。

gcloud

  1. ターミナルを開きます。

  2. 次のコマンドを入力します。

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
       --role roles/workflows.invoker

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

    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
    • SERVICE_ACCOUNT_NAME: サービス アカウントの名前。