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

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

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

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

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

アクセス制御

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

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

Workflows を呼び出す

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

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

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

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

コンソール

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

  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: サービス アカウントの名前。