別のプロジェクトのリソースへのアクセス

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

このページでは、Cloud Composer 環境とは異なる Google Cloud プロジェクトにあるリソースにアクセスする方法について説明します。

他の Google Cloud プロジェクトのリソースにアクセスするには、次の方法をおすすめします。

  1. DAG で、環境で事前構成されたデフォルトの接続を使用します。

    たとえば、google_cloud_default 接続は多くの Google Cloud オペレーターによって使用され、環境の作成時に自動的に構成されます。

  2. 環境のサービス アカウントに追加の IAM 権限とロールを付与して、別のプロジェクト内のリソースにアクセスできるようにします。

環境のサービス アカウントを決定する

環境のサービス アカウントを決定するには:

コンソール

  1. Google Cloud Console で [環境] ページに移動します。

    [環境] に移動

  2. 環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。

  3. [環境の設定] タブに移動します。

  4. 環境のサービス アカウントが [サービス アカウント] フィールドに一覧表示されます。

    この値は service-account-name@example-project.iam.gserviceaccount.com などのメールアドレスです。

gcloud

gcloud composer environments describe ENVIRONMENT_NAME \
    --location LOCATION \
    --format="get(config.nodeConfig.serviceAccount)"

この値は service-account-name@example-project.iam.gserviceaccount.com などのメールアドレスです。

別のプロジェクトのリソースにアクセスするために IAM ロールと権限を付与する

環境のサービス アカウントには、別のプロジェクトのリソースにアクセスするための権限が必要です。これらのロールと権限は、アクセスするリソースによって異なる場合があります。

特定のリソースにアクセスする

別のプロジェクトにある単一の Cloud Storage バケットなど、特定のリソースのロールと権限を付与することをおすすめします。このアプローチでは、条件付きロール バインディングでリソースベースのアクセスを使用します。

特定のリソースにアクセスするには:

  1. リソースベースのアクセスを構成するのガイドに従ってください。
  2. ロールと権限を付与するときは、プリンシパルとして環境のサービス アカウントを指定します。

リソースタイプにアクセスする

別の方法としては、異なるプロジェクトにあるすべての Cloud Storage バケットなど、リソースタイプに基づいてロールと権限を付与することもできます。

リソースタイプにアクセスするには:

  1. 他のリソースへのアクセス権の管理のガイドに従ってください。
  2. ロールと権限を付与するときは、プリンシパルとして環境のサービス アカウントを指定します。

必要な権限とロールを付与すると、環境が配置されているプロジェクト内のリソースへのアクセスに使用するのと同じ、デフォルトの Airflow 接続を持つ別のプロジェクトのリソースにアクセスできます。

次のステップ