Compute Engine は、Artifact Registry リポジトリから直接コンテナを pull できます。
必要な権限
Compute Engine サービス アカウントは、コンテナ イメージを pull するために Artifact Registry にアクセスする必要があります。
組織のポリシーの構成によっては、デフォルトのサービス アカウントにプロジェクトの編集者のロールが自動的に付与される場合があります。iam.automaticIamGrantsForDefaultServiceAccounts
組織ポリシー制約を適用して、自動的なロール付与を無効にすることを強くおすすめします。2024 年 5 月 3 日以降に組織を作成した場合、この制約はデフォルトで適用されます。
自動ロール付与を無効にする場合、デフォルトのサービス アカウントに付与するロールを決定し、これらのロールを付与する必要があります。
デフォルトのサービス アカウントにすでに編集者ロールが設定されている場合は、編集者ロールを権限の低いロールに置き換えることをおすすめします。サービス アカウントのロールを安全に変更するには、Policy Simulator を使用して変更の影響を確認してから、適切なロールを付与または取り消す操作を行います。
さまざまなシナリオで必要なアクセス スコープと必要なロールの例を次に示します。
- Artifact Registry リポジトリからコンテナ イメージを pull するには、Compute Engine サービス アカウントに Artifact Registry 読み取りロール(
roles/artifactregistry.reader
)を付与する必要があります。また、Cloud Storage ストレージ バケットにread-only
アクセス スコープが設定されていることを確認します。 - VM インスタンスをリポジトリにアップロードする。この場合、ストレージへの書き込みアクセス権(
read-write
、cloud-platform
、full-control
)を持つアクセス スコープを構成する必要があります。 - VM インスタンスが、アクセスするリポジトリとは異なるプロジェクトにある。リポジトリを含むプロジェクトで、インスタンスのサービス アカウントに必要な権限を付与します。
- 同じプロジェクトに複数のリポジトリがあり、デフォルトのサービス アカウントにはすべてのリポジトリに対して同じレベルのアクセスレベルを設定しない。この場合、リポジトリ レベルで適切な権限を付与し、プロジェクト レベルでは Artifact Registry の権限を取り消す必要があります。
- VM はカスタム サービス アカウントに関連付けられています。サービス アカウントに必要な権限とアクセス スコープがあることを確認します。
- 権限の付与にカスタムロールを使用してしている場合で、カスタムロールに必要な Artifact Registry の権限が含まれていない。必要な権限をロールに追加します。