Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
このページでは、Cloud Composer 環境とは異なる Google Cloud プロジェクトにあるリソースにアクセスする方法について説明します。
他の Google Cloud プロジェクトのリソースにアクセスするには、次の方法をおすすめします。
DAG で、環境で事前構成されたデフォルトの接続を使用します。
たとえば、
google_cloud_default
接続は多くの Google Cloud オペレーターによって使用され、環境の作成時に自動的に構成されます。環境のサービス アカウントに追加の IAM 権限とロールを付与して、別のプロジェクト内のリソースにアクセスできるようにします。
環境のサービス アカウントを決定する
環境のサービス アカウントを決定するには:
コンソール
Google Cloud Console で [環境] ページに移動します。
環境のリストで、ご利用の環境の名前をクリックします。[環境の詳細] ページが開きます。
[環境の設定] タブに移動します。
環境のサービス アカウントが [サービス アカウント] フィールドに一覧表示されます。
この値は
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 バケットなど、特定のリソースのロールと権限を付与することをおすすめします。このアプローチでは、条件付きロール バインディングでリソースベースのアクセスを使用します。
特定のリソースにアクセスするには:
- リソースベースのアクセスを構成するのガイドに従ってください。
- ロールと権限を付与するときは、プリンシパルとして環境のサービス アカウントを指定します。
リソースタイプにアクセスする
別の方法としては、異なるプロジェクトにあるすべての Cloud Storage バケットなど、リソースタイプに基づいてロールと権限を付与することもできます。
リソースタイプにアクセスするには:
- 他のリソースへのアクセス権の管理のガイドに従ってください。
- ロールと権限を付与するときは、プリンシパルとして環境のサービス アカウントを指定します。
必要な権限とロールを付与すると、環境が配置されているプロジェクト内のリソースへのアクセスに使用するのと同じ、デフォルトの Airflow 接続を持つ別のプロジェクトのリソースにアクセスできます。