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
Google Cloud コンソールで、[サービス アカウント] ページに移動します。
サービス アカウントに移動プロジェクトを選択し、[サービス アカウントを作成] をクリックします。
[サービス アカウント名] フィールドに名前を入力します(例:
sa-name
)。[作成して続行] をクリックします。
[ロールを選択] リストで、[Workflows] > [Workflows 起動元] を選択します。
[完了] をクリックします。
gcloud
ターミナルを開きます。
次のコマンドを入力します。
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
: サービス アカウントの名前。