このページでは、Artifact Registry のリモート リポジトリを作成する方法について説明します。
リモート リポジトリには、次のアップストリーム ソースからのアーティファクトが保存されます。
- 標準の Artifact Registry リポジトリ。
- Docker Hub、Maven Central、Python Package Index(PyPI)、Debian、CentOS などの外部ソース。
リモート リポジトリは、上流ソースのプロキシとして機能するため、依存関係をより細かく制御できます。パッケージのバージョンを初めてリクエストするときに、Artifact Registry はパッケージをダウンロードして、リモート リポジトリにキャッシュ保存します。次に同じパッケージ バージョンをリクエストすると、Artifact Registry はキャッシュに保存されたコピーを提供します。
存在しないアップストリーム ソースから、または指定したバージョンが含まれないアップストリーム ソースからアーティファクトをリクエストすると、リクエストは失敗します。
その他のリポジトリ モードは以下のとおりです。
- 標準: デフォルトのリポジトリ モード。標準リポジトリに非公開パッケージなどのアーティファクトを直接アップロードまたは公開します。ダウンロードは個々の標準リポジトリから直接行えますが、仮想リポジトリでリポジトリのグループにアクセスするとツールの構成が簡素化されます。
- 仮想: リモート リポジトリと標準リポジトリなど、複数のアップストリーム リポジトリに対する単一のアクセス ポイントとして機能するリポジトリ。
リモート リポジトリの仕組みについて詳しくは、リモート リポジトリの概要をご覧ください。
準備
- Artifact Registry を有効にします。これには、Artifact Registry API の有効化と Google Cloud CLI のインストールが含まれます。
- 省略可: gcloud CLI コマンドのデフォルトを構成します。
- リポジトリのコンテンツを暗号化するために顧客管理の暗号鍵(CMEK)が必要な場合は、リポジトリ用に Cloud KMS で鍵を作成して有効化します。
アップストリーム リポジトリに対して認証を行う場合は、Secret Manager API を有効にします。
gcloud services enable secretmanager.googleapis.com \ --project=PROJECT_ID
Artifact Registry が VPC Service Controls のサービス境界内にあり、Access Context Manager API がまだ有効になっていない場合は、それを有効にします。
gcloud services enable accesscontextmanager.googleapis.com \ --project=PROJECT_ID
Artifact Registry リポジトリをアップストリームとして設定し、リモート リポジトリとは異なるプロジェクトにある場合は、リモート リポジトリを作成する前に、リモート リポジトリ プロジェクトのサービス アカウントにアップストリーム リポジトリ プロジェクトへのアクセス権を付与する必要があります。
サービス エージェントのロールを付与する リモート リポジトリは、Artifact Registry サービス エージェントを使用して Artifact Registry アップストリーム リポジトリの認証を行います。リモート リポジトリ サービス エージェントに、アップストリーム リポジトリへの読み取りアクセス権を付与する必要があります。
リモート リポジトリ サービス エージェントにアップストリーム リポジトリに対する Artifact Registry サービス エージェントのロールを付与するには、次のコマンドを実行します。
gcloud projects add-iam-policy-binding UPSTREAM_REPOSITORY \ --member serviceAccount:service-REMOTE_PROJECT_NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \ --location=REGION \ --project=UPSTREAM_PROJECT_ID \ --role roles/artifactregistry.serviceAgent
次のように置き換えます。
UPSTREAM_REPOSITORY
は、アップストリーム リポジトリの ID です。Artifact Registry アップストリーム リポジトリは、標準モードのリポジトリである必要があります。REMOTE_PROJECT_NUMBER
は、リモート リポジトリの Google Cloud プロジェクトのプロジェクト番号です。REMOTE_PROJECT_ID
は、リモート リポジトリの Google Cloud プロジェクトの ID です。REGION
は、リモート リポジトリを作成するリージョンです。UPSTREAM_PROJECT_ID
は、アップストリーム リポジトリを持つ Google Cloud プロジェクトの ID です。
必要なロール
リポジトリの管理に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
リモート リポジトリを作成し、個々のリポジトリへのアクセス権を付与する場合: プロジェクトに対する Artifact Registry 管理者 (
roles/artifactregistry.admin
) -
アップストリーム リポジトリの認証情報をシークレット バージョンにする場合: プロジェクトに対する Secret Manager 管理者 (
roles/secretmanager.admin
) -
VPC Service Controls サービス境界外のアップストリーム ソースへのアクセス権を付与する場合: プロジェクト、フォルダ、アクセス ポリシーが適用される組織に対する Access Context Manager 編集者 (
roles/accesscontextmanager.policyEditor
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
リモート リポジトリを作成する
リモート リポジトリを作成する際は、次の設定を構成する必要があります。この設定は、リポジトリの作成後に変更できません。
- アーティファクトの形式。
- リポジトリのモードがリモートに設定されている。
- リモート リポジトリのアップストリーム ソース。
- リポジトリのロケーション。
- Google が管理する鍵または顧客管理の暗号鍵による暗号化。Artifact Registry は、デフォルトで Google が管理する暗号鍵を使用します。
Artifact Registry では組織のポリシーの制約が適用され、CMEK でリソースを暗号化するか、CMEK の保護に使用できる Cloud KMS 鍵を制限する必要があります。
Google Cloud コンソールを使用してリモート リポジトリを作成する
Google Cloud コンソールで [リポジトリ] ページを開きます。
[リポジトリを作成] をクリックします。
リポジトリ名を指定します。プロジェクト内のリポジトリの場所ごとに、リポジトリ名は一意であることが必要です。
[形式] セクションで、リポジトリの形式を選択します。
[リポジトリ モード] セクションで、[リモート] を選択します。
[リモート リポジトリのソース] セクションで、次のいずれかの方法でアップストリーム リポジトリの URL を入力します。
- 形式の種類に応じて、表示されたプリセット アップストリーム ソースを選択します。
- [カスタム] を選択して、サポートされている形式の公開リポジトリまたは非公開リポジトリの完全な URL を指定します。
- [Artifact Registry リポジトリ] を選択して、標準の Artifact Registry リポジトリを選択します。
[カスタム] を選択した場合は、[カスタム リポジトリ] フィールドにリポジトリの完全な URL を入力します。リポジトリの作成後に URL を変更することはできません。
一般的なアップストリーム URL の例については、カスタム アップストリームをご覧ください。
[Artifact Registry リポジトリ] を選択した場合:
- [Artifact Registry リポジトリ] フィールドに、アップストリームとして使用するリポジトリの完全な名前を入力するか、[参照] をクリックして、表示できるリポジトリのリストを表示します。リモート リポジトリと同じ形式のリポジトリのみが一覧表示されます。
- アップストリームとして使用するリポジトリの名前をクリックします。
- [選択] をクリックします。
プリセットのアップストリームのいずれかを選択した場合、または [カスタム] ボタンを使用して完全な URL を入力した場合は、[リモート リポジトリの認証モード] で次のいずれかを選択します。
- 認証済み: アップストリーム リポジトリに対する認証のユーザー名とパスワードを入力します。
- 未認証: アップストリーム リポジトリに対する認証をスキップします。
[認証済み] を選択した場合は、次の情報を入力します。
- [ユーザー名] フィールドに、アップストリーム リポジトリのユーザー名を入力します。
- [シークレット] フィールドに、アップストリーム リポジトリのパスワードを保存したシークレット バージョンを入力します。
これらの値は、リポジトリの作成後に編集できます。リモート リポジトリのアップストリームに対する認証の詳細については、リモート リポジトリのアップストリームに対する認証を構成するをご覧ください。
[ロケーション タイプ] セクションで、リポジトリのロケーションを選択します。
ロケーション タイプには、[リージョン] または [マルチリージョン] を選択します。ロケーションのリストは、選択した内容に応じて変わります。
[リージョン] リストまたは [マルチリージョン] リストでロケーションを選択します。
ロケーション タイプとサポートされているロケーションについては、リポジトリのロケーションをご覧ください。
リポジトリの説明を追加します。説明は、リポジトリの目的とリポジトリに含まれるアーティファクトの種類の識別に役立ちます。
リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。
リポジトリの整理に ラベル を使用する場合は、ラベルの追加をクリックし、ラベルの Key-Value ペアを入力します。リポジトリを作成した後にラベルを追加、編集、削除できます。
[暗号化] セクションで、リポジトリの暗号化方式を選択します。
- Google が管理する鍵 - Google が管理する暗号鍵を使用してリポジトリのコンテンツを暗号化します。
- 顧客管理の暗号鍵 - Cloud Key Management Service で管理する鍵を使用してリポジトリのコンテンツを暗号化します。鍵の設定手順については、リポジトリの CMEK の設定をご覧ください。
クリーンアップ ポリシーを使用して未使用のアーティファクトを削除する場合は、[クリーンアップ ポリシー] セクションで次の操作を行います。
- ポリシーを適用する前に [ドライラン] を選択してテストします。
- [ポリシーを追加] をクリックして、リポジトリに保持ポリシーまたは削除ポリシーを追加します。
- [名前] フィールドでクリーンアップ ポリシーにわかりやすい名前を付けます。
[ポリシータイプ] セクションで、次のいずれかを選択します。
- 条件付き削除: 定義した条件に基づいてアーティファクトを削除します。
- 条件付き保持: 定義した条件に基づいてアーティファクトを保持します。
最新のバージョンを保持: パッケージごとに一定数の最新バージョンを保持します。
クリーンアップ ポリシーの詳細については、クリーンアップ ポリシーの設定をご覧ください。
[Artifact Analysis] セクションで、脆弱性スキャンの設定を選択します。
有効 - このリポジトリでスキャンを許可します。プロジェクトで Container Scanning API を有効にする必要があります。
Container Scanning API を有効にすると、すぐに課金が開始されます。プロジェクトで Container Scanning API を有効にすると、新しいリポジトリと既存のリポジトリのすべてで脆弱性スキャンが有効になります。イメージを Artifact Registry に push すると、Artifact Analysis によって自動的にスキャンされます。
無効 - このリポジトリでスキャンを防止します。プロジェクトで Container Scanning API が有効になっている場合、他のリポジトリのスキャンは続行されます。このリポジトリは除外されます。
脆弱性スキャン オプションの詳細については、自動スキャンを有効または無効にするをご覧ください。
[作成] をクリックします。
Artifact Registry でリポジトリが作成され、リポジトリのリストに追加されます。
リポジトリを作成した後は:
- リポジトリへのアクセス権を付与します。
- Docker、パッケージ マネージャー、その他のサードパーティのクライアントをリポジトリに対して認証を行うように構成します。
- アップストリーム ソースに対して認証するように Artifact Registry リモート リポジトリを構成します。
- コンテナ イメージ: Docker Hub へのリモート リポジトリ認証を構成する
- 言語パッケージ:
- ユーザー定義のカスタム アップストリーム: リモート リポジトリのアップストリームに対する認証を構成する
gcloud CLI を使用してリモート リポジトリを作成する
リポジトリを作成するには、適切なリポジトリ形式のコマンドを実行します。
Docker
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=docker \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--disable-vulnerability-scanning \
--remote-docker-repo=UPSTREAM
アップストリーム リポジトリの認証に使用するオプションのフラグ:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
次のように置き換えます。
REMOTE-REPOSITORY-NAME
は、リポジトリの名前に置き換えます。プロジェクト内のリポジトリの場所ごとに、リポジトリ名は一意であることが必要です。PROJECT_ID
: プロジェクト ID。このフラグを省略すると、現在のプロジェクトまたはデフォルトのプロジェクトが使用されます。LOCATION
は、リポジトリのリージョンまたはマルチリージョンのロケーションです。デフォルトを設定すると、このフラグを省略できます。サポートされているリポジトリのロケーションの一覧を表示するには、コマンドgcloud artifacts locations list
を実行します。DESCRIPTION
は、リポジトリの説明(省略可)です。リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。REMOTE-REPOSITORY-DESCRIPTION
は、このリモート リポジトリの外部リポジトリの構成の説明です。USERNAME
(省略可): 認証を使用している場合は、アップストリーム リポジトリの認証に使用するユーザー名。SECRET_VERSION
省略可。認証を使用している場合は、アップストリーム リポジトリのパスワードを含むシークレット バージョンを使用します。UPSTREAM
は、プリセットのアップストリーム名、Artifact Registry リポジトリ パス、またはアップストリーム リポジトリのユーザー定義 URL に置き換えます。
Artifact Registry アップストリーム リポジトリの場合は、リポジトリ パスを次のようにフォーマットします。projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
使用可能なプリセット アップストリームとサポートされているユーザー定義アップストリームについては、サポートされている形式をご覧ください。--disable-vulnerability-scanning
: 自動脆弱性スキャンを無効にするようにリポジトリを構成するオプションのフラグ。--allow-vulnerability-scanning
: 脆弱性スキャンを自動的に行うようにリポジトリを構成するオプションのフラグ。詳細については、自動スキャンを有効または無効にするをご覧ください。
たとえば、次のコマンドは、Google Cloud プロジェクト my-project
のリージョン us-east1
に my-repo
という名前のリモート リポジトリを作成し、ユーザー名 my-username
と Secret のバージョン projects/my-project/secrets/my-secret/versions/1
を使用してアップストリーム リポジトリに対する認証を行うことができますです。
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=docker \
--location=us-east1 \
--description="Remote Docker repository" \
--mode=remote-repository \
--remote-repo-config-desc="Docker Hub" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-docker-repo=DOCKER-HUB
Docker Hub アップストリーム リポジトリの認証の詳細については、Docker Hub へのリモート リポジトリ認証を構成するをご覧ください。
Maven
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=maven \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--disable-vulnerability-scanning \
--remote-mvn-repo=UPSTREAM
アップストリーム リポジトリの認証に使用するオプションのフラグ:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
次のように置き換えます。
REMOTE-REPOSITORY-NAME
は、リポジトリの名前に置き換えます。プロジェクト内のリポジトリの場所ごとに、リポジトリ名は一意であることが必要です。PROJECT_ID
: プロジェクト ID。このフラグを省略すると、現在のプロジェクトまたはデフォルトのプロジェクトが使用されます。LOCATION
は、リポジトリのリージョンまたはマルチリージョンのロケーションです。デフォルトを設定すると、このフラグを省略できます。サポートされているリポジトリのロケーションの一覧を表示するには、コマンドgcloud artifacts locations list
を実行します。DESCRIPTION
は、リポジトリの説明(省略可)です。リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。REMOTE-REPOSITORY-DESCRIPTION
は、このリモート リポジトリの外部リポジトリの構成の説明です。USERNAME
(省略可): 認証を使用している場合は、アップストリーム リポジトリの認証に使用するユーザー名。SECRET_VERSION
省略可。認証を使用している場合は、アップストリーム リポジトリのパスワードを含むシークレット バージョンを使用します。UPSTREAM
は、プリセットのアップストリーム名、Artifact Registry リポジトリ パス、またはアップストリーム リポジトリのユーザー定義 URL に置き換えます。
Artifact Registry アップストリーム リポジトリの場合は、リポジトリ パスを次のようにフォーマットします。projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
使用可能なプリセット アップストリームとサポートされているユーザー定義アップストリームについては、サポートされている形式をご覧ください。--disable-vulnerability-scanning
: 自動脆弱性スキャンを無効にするようにリポジトリを構成するオプションのフラグ。--allow-vulnerability-scanning
: 脆弱性スキャンを自動的に行うようにリポジトリを構成するオプションのフラグ。詳細については、自動スキャンを有効または無効にするをご覧ください。
たとえば、次のコマンドは、Google Cloud プロジェクト my-project
のリージョン us-east1
に my-repo
という名前のリモート リポジトリを作成し、ユーザー名 my-username
と Secret のバージョン projects/my-project/secrets/my-secret/versions/1
を使用してアップストリーム リポジトリに対する認証を行うことができますです。
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=maven \
--location=us-east1 \
--description="Remote Maven repository" \
--mode=remote-repository \
--remote-repo-config-desc="Maven Central" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-mvn-repo=MAVEN-CENTRAL
npm
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=npm \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--disable-vulnerability-scanning \
--remote-npm-repo=UPSTREAM
アップストリーム リポジトリの認証に使用するオプションのフラグ:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
次のように置き換えます。
REMOTE-REPOSITORY-NAME
は、リポジトリの名前に置き換えます。プロジェクト内のリポジトリの場所ごとに、リポジトリ名は一意であることが必要です。PROJECT_ID
: プロジェクト ID。このフラグを省略すると、現在のプロジェクトまたはデフォルトのプロジェクトが使用されます。LOCATION
は、リポジトリのリージョンまたはマルチリージョンのロケーションです。デフォルトを設定すると、このフラグを省略できます。サポートされているリポジトリのロケーションの一覧を表示するには、コマンドgcloud artifacts locations list
を実行します。DESCRIPTION
は、リポジトリの説明(省略可)です。リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。REMOTE-REPOSITORY-DESCRIPTION
は、このリモート リポジトリの外部リポジトリの構成の説明です。USERNAME
(省略可): 認証を使用している場合は、アップストリーム リポジトリの認証に使用するユーザー名。SECRET_VERSION
省略可。認証を使用している場合は、アップストリーム リポジトリのパスワードを含むシークレット バージョンを使用します。UPSTREAM
は、プリセットのアップストリーム名、Artifact Registry リポジトリ パス、またはアップストリーム リポジトリのユーザー定義 URL に置き換えます。
Artifact Registry アップストリーム リポジトリの場合は、リポジトリ パスを次のようにフォーマットします。projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
使用可能なプリセット アップストリームとサポートされているユーザー定義アップストリームについては、サポートされている形式をご覧ください。--disable-vulnerability-scanning
: 自動脆弱性スキャンを無効にするようにリポジトリを構成するオプションのフラグ。--allow-vulnerability-scanning
: 脆弱性スキャンを自動的に行うようにリポジトリを構成するオプションのフラグ。詳細については、自動スキャンを有効または無効にするをご覧ください。
たとえば、次のコマンドは、Google Cloud プロジェクト my-project
のリージョン us-east1
に my-repo
という名前のリモート リポジトリを作成し、ユーザー名 my-username
と Secret のバージョン projects/my-project/secrets/my-secret/versions/1
を使用してアップストリーム リポジトリに対する認証を行うことができますです。
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=npm \
--location=us-east1 \
--description="Remote npm repository" \
--mode=remote-repository \
--remote-repo-config-desc="Public npm registry" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-npm-repo=NPMJS
Python
gcloud artifacts repositories create REMOTE-REPOSITORY-NAME \
--project=PROJECT_ID \
--repository-format=python \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE-REPOSITORY-DESCRIPTION" \
--disable-vulnerability-scanning \
--remote-python-repo=UPSTREAM
アップストリーム リポジトリの認証に使用するオプションのフラグ:
--remote-username=USERNAME
--remote-password-secret-version=SECRET_VERSION
次のように置き換えます。
REMOTE-REPOSITORY-NAME
は、リポジトリの名前に置き換えます。プロジェクト内のリポジトリの場所ごとに、リポジトリ名は一意であることが必要です。PROJECT_ID
: プロジェクト ID。このフラグを省略すると、現在のプロジェクトまたはデフォルトのプロジェクトが使用されます。LOCATION
は、リポジトリのリージョンまたはマルチリージョンのロケーションです。デフォルトを設定すると、このフラグを省略できます。サポートされているリポジトリのロケーションの一覧を表示するには、コマンドgcloud artifacts locations list
を実行します。DESCRIPTION
は、リポジトリの説明(省略可)です。リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。REMOTE-REPOSITORY-DESCRIPTION
は、このリモート リポジトリの外部リポジトリの構成の説明です。USERNAME
(省略可): 認証を使用している場合は、アップストリーム リポジトリの認証に使用するユーザー名。SECRET_VERSION
省略可。認証を使用している場合は、アップストリーム リポジトリのパスワードを含むシークレット バージョンを使用します。UPSTREAM
は、プリセットのアップストリーム名、Artifact Registry リポジトリ パス、またはアップストリーム リポジトリのユーザー定義 URL に置き換えます。
Artifact Registry アップストリーム リポジトリの場合は、リポジトリ パスを次のようにフォーマットします。projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY
使用可能なプリセット アップストリームとサポートされているユーザー定義アップストリームについては、サポートされている形式をご覧ください。--disable-vulnerability-scanning
: 自動脆弱性スキャンを無効にするようにリポジトリを構成するオプションのフラグ。--allow-vulnerability-scanning
: 脆弱性スキャンを自動的に行うようにリポジトリを構成するオプションのフラグ。詳細については、自動スキャンを有効または無効にするをご覧ください。
たとえば、次のコマンドは、Google Cloud プロジェクト my-project
のリージョン us-east1
に my-repo
という名前のリモート リポジトリを作成し、ユーザー名 my-username
と Secret のバージョン projects/my-project/secrets/my-secret/versions/1
を使用してアップストリーム リポジトリに対する認証を行うことができますです。
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=python \
--location=us-east1 \
--description="Remote Python repository" \
--mode=remote-repository \
--remote-repo-config-desc="PyPI" \
--remote-username=my-username \
--remote-password-secret-version=projects/my-project/secrets/my-secret/versions/1 \
--remote-python-repo=PYPI
Apt(プレビュー)
gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
--project=PROJECT_ID \
--repository-format=apt \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
--remote-apt-repo=APT_REPOSITORY_BASE \
--remote-apt-repo-path="APT_REPOSITORY_PATH"
以下を置き換えます。
REMOTE_REPOSITORY_NAME
は、リポジトリの名前に置き換えます。プロジェクト内のリポジトリの場所ごとに、リポジトリ名は一意であることが必要です。PROJECT_ID
: プロジェクト ID。このフラグを省略すると、現在のプロジェクトまたはデフォルトのプロジェクトが使用されます。LOCATION
は、リポジトリのリージョンまたはマルチリージョンのロケーションです。デフォルトを設定すると、このフラグを省略できます。サポートされているリポジトリのロケーションの一覧を表示するには、コマンドgcloud artifacts locations list
を実行します。DESCRIPTION
は、リポジトリの説明(省略可)です。リポジトリの説明は暗号化されないため、機密データは含めないでください。REMOTE_REPOSITORY_DESCRIPTION
は、このリモート リポジトリの外部リポジトリの構成の説明です。APT_REPOSITORY_BASE
は、Apt リモート リポジトリの OS パッケージのサポート対象のアップストリームにリストされたサポートされているリポジトリ ベース名のいずれかに置き換えます。APT_REPOSITORY_PATH
は、リポジトリ ベースの後のリモート リポジトリにキャッシュ保存するアップストリーム リポジトリの残りの URL に置き換えます。
たとえば、次のコマンドは、Google Cloud プロジェクト my-project
のリージョン us-east1
に Debian buster リポジトリをキャッシュ保存するために、my-repo
という名前のリモート リポジトリを作成します。アップストリーム リポジトリの完全な URL は http://deb.debian.org/debian/dists/buster
です。
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=apt \
--location=us-east1 \
--description="Apt remote repository" \
--mode=remote-repository \
--remote-repo-config-desc="Debian buster distribution" \
--remote-apt-repo=DEBIAN \
--remote-apt-repo-path="debian/dists/buster"
Yum(プレビュー)
gcloud artifacts repositories create REMOTE_REPOSITORY_NAME \
--project=PROJECT_ID \
--repository-format=yum \
--location=LOCATION \
--description="DESCRIPTION" \
--mode=remote-repository \
--remote-repo-config-desc="REMOTE_REPOSITORY_DESCRIPTION" \
--remote-yum-repo=YUM_REPOSITORY_BASE \
--remote-yum-repo-path="YUM_REPOSITORY_PATH"
以下を置き換えます。
REMOTE_REPOSITORY_NAME
は、リポジトリの名前に置き換えます。プロジェクト内のリポジトリの場所ごとに、リポジトリ名は一意であることが必要です。PROJECT_ID
: プロジェクト ID。このフラグを省略すると、現在のプロジェクトまたはデフォルトのプロジェクトが使用されます。LOCATION
は、リポジトリのリージョンまたはマルチリージョンのロケーションです。デフォルトを設定すると、このフラグを省略できます。サポートされているリポジトリのロケーションの一覧を表示するには、コマンドgcloud artifacts locations list
を実行します。DESCRIPTION
は、リポジトリの説明(省略可)です。リポジトリの説明は暗号化されないため、機密データは含めないでください。REMOTE_REPOSITORY_DESCRIPTION
は、このリモート リポジトリの外部リポジトリの構成の説明です。YUM_REPOSITORY_BASE
は、Yum リモート リポジトリの OS パッケージのサポート対象のアップストリームにリストされたサポートされているリポジトリ ベース名のいずれかに置き換えます。YUM_REPOSITORY_PATH
は、リポジトリ ベースの後のリモート リポジトリにキャッシュ保存するアップストリーム リポジトリの残りの URL に置き換えます。
たとえば、次のコマンドは、アップストリーム リポジトリ 9-stream/BaseOs/x86_64/os
の Google Cloud プロジェクト my-project
のリージョン us-east1
に、my-repo
という名前の Yum パッケージのリモート リポジトリを作成します。リポジトリの完全な URL は https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os
です。
gcloud artifacts repositories create my-repo \
--project=my-project \
--repository-format=yum \
--location=us-east1 \
--description="Yum remote repository" \
--mode=remote-repository \
--remote-repo-config-desc="CentOS 8 x86" \
--remote-yum-repo=CENTOS_STREAM \
--remote-yum-repo-path="9-stream/BaseOs/x86_64/os"
Artifact Registry がリポジトリを作成します。次のコマンドを実行してリポジトリの説明を表示します。
gcloud artifacts repositories describe REMOTE_REPOSITORY_NAME \
--location=LOCATION
リポジトリを作成したら、次のようにします。
- リポジトリへのアクセス権を付与します。
- 未使用のアーティファクトを削除するようにクリーンアップ ポリシーを設定します。
- Docker、パッケージ マネージャー、その他のサードパーティのクライアントをリポジトリに対して認証を行うように構成します。
- アップストリーム ソースに対して認証するように Artifact Registry リモート リポジトリを構成します。
- コンテナ イメージ: Docker Hub へのリモート リポジトリ認証を構成する
- 言語パッケージ:
- ユーザー定義のカスタム アップストリーム: リモート リポジトリのアップストリームに対する認証を構成する
Terraform を使用してリモート リポジトリを作成する
google_artifact_registry_repository リソースを使用して、リポジトリを作成します。
terraform-provider-google
のバージョン 5.0.0
以降が必要です。
Google Cloud で Terraform を初めて使用する場合は、HashiCorp ウェブサイトの Google Cloud スタートガイド ページをご覧ください。
次の例では、Terraform リソース名 my-repo
でプロバイダとリモート リポジトリを定義します。
Docker
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "docker"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
docker_repository {
public_repository = "DOCKER_HUB"
}
}
cleanup_policy_dry_run = DRY_RUN_STATUS
cleanup_policies {
id = "POLICY_NAME"
action = "DELETE"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
older_than = "TIME_SINCE_UPLOAD"
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
most_recent_versions {
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
keep_count = KEEP_COUNT
}
}
}
場所
PROJECT-ID
は、Google Cloud プロジェクト ID です。LOCATION
は、リポジトリのロケーションです。REPOSITORY_ID
は、リポジトリ ID です。DESCRIPTION
はリポジトリの説明です(省略可能)。リポジトリの説明は暗号化されないため、機密データは含めないでください。KEY
は、Cloud Key Management Service 鍵の名前です(暗号化に顧客管理の暗号鍵(CMEK)を使用している場合)。デフォルト設定(Google が管理する暗号鍵)を使用する場合は、この引数を省略します。CONFIG_DESCRIPTION
は、リモートソースの説明です(省略可能)。DRY_RUN_STATUS
は、リポジトリにクリーンアップ ポリシーを設定する場合に、クリーンアップ ポリシーでアーティファクトを削除するか、または削除されるアーティファクトをログに記録するだけかを決定します。クリーンアップ ポリシーをリポジトリに追加しない場合は省略します。*true
: ドライラン モードで実行するポリシーを設定します。ドライラン モードでは、アーティファクトは削除されません。*false
: クリーンアップ ポリシーを適用します。アーティファクトは、ポリシーに応じて削除または保持されます。クリーンアップ ポリシーの詳細については、クリーンアップ ポリシーの設定をご覧ください。POLICY_NAME
は、クリーンアップ ポリシーの名前です。TAG_STATE
は、ポリシーを適用するタグの状態です。値はtagged
、untagged
、およびany
です。any
は、タグ付けされたアーティファクトとタグ付けされていないアーティファクトの両方に適用されます。リポジトリで不変のタグが有効になっている場合、タグ付けされたアーティファクトは削除できません。TAG_PREFIX
、TAG_PREFIX_N
は、ポリシーを適用するタグの接頭辞です。PKG_PREFIX
、PKG_PREFIX_N
は、ポリシーを適用するパッケージの接頭辞です。TIME_SINCE_UPLOAD
は、アーティファクト バージョンがリポジトリにアップロードされてからの時間(期間)です。それぞれ、s
、m
、h
、d
を追加することにより、秒、分、時、日の期間を指定できます。KEEP_COUNT
は、リポジトリに保持するアーティファクトのパッケージあたりのバージョン数です。
Maven
バージョン ポリシーを指定しない場合は、Artifact Registry によってデフォルトでパッケージのスナップショットとリリース バージョンの両方を保存する Maven リポジトリが作成されます。
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "maven"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
maven_repository {
public_repository = "MAVEN_CENTRAL"
}
}
cleanup_policy_dry_run = DRY_RUN_STATUS
cleanup_policies {
id = "POLICY_NAME"
action = "DELETE"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
older_than = "TIME_SINCE_UPLOAD"
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
most_recent_versions {
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
keep_count = KEEP_COUNT
}
}
}
場所
PROJECT-ID
は、Google Cloud プロジェクト ID です。LOCATION
は、リポジトリのロケーションです。REPOSITORY_ID
は、リポジトリ ID です。DESCRIPTION
はリポジトリの説明です(省略可能)。リポジトリの説明は暗号化されないため、機密データは含めないでください。KEY
は、Cloud Key Management Service 鍵の名前です(暗号化に顧客管理の暗号鍵(CMEK)を使用している場合)。デフォルト設定(Google が管理する暗号鍵)を使用する場合は、この引数を省略します。CONFIG_DESCRIPTION
は、リモートソースの説明です(省略可能)。DRY_RUN_STATUS
は、リポジトリにクリーンアップ ポリシーを設定する場合に、クリーンアップ ポリシーでアーティファクトを削除するか、または削除されるアーティファクトをログに記録するだけかを決定します。クリーンアップ ポリシーをリポジトリに追加しない場合は省略します。*true
: ドライラン モードで実行するポリシーを設定します。ドライラン モードでは、アーティファクトは削除されません。*false
: クリーンアップ ポリシーを適用します。アーティファクトは、ポリシーに応じて削除または保持されます。クリーンアップ ポリシーの詳細については、クリーンアップ ポリシーの設定をご覧ください。POLICY_NAME
は、クリーンアップ ポリシーの名前です。TAG_STATE
は、ポリシーを適用するタグの状態です。値はtagged
、untagged
、およびany
です。any
は、タグ付けされたアーティファクトとタグ付けされていないアーティファクトの両方に適用されます。リポジトリで不変のタグが有効になっている場合、タグ付けされたアーティファクトは削除できません。TAG_PREFIX
、TAG_PREFIX_N
は、ポリシーを適用するタグの接頭辞です。PKG_PREFIX
、PKG_PREFIX_N
は、ポリシーを適用するパッケージの接頭辞です。TIME_SINCE_UPLOAD
は、アーティファクト バージョンがリポジトリにアップロードされてからの時間(期間)です。それぞれ、s
、m
、h
、d
を追加することにより、秒、分、時、日の期間を指定できます。KEEP_COUNT
は、リポジトリに保持するアーティファクトのパッケージあたりのバージョン数です。
スナップショットとリリース バージョンを別々のリポジトリに保存するには、maven_config
ブロックを使用してリポジトリのバージョン ポリシーを指定します。このブロックは、次の設定をサポートします。
version_policy
は、次のいずれかの値を使用してバージョン ポリシーを設定します。VERSION_POLICY_UNSPECIFIED
: スナップショットとリリース パッケージを保存します。これはデフォルトの設定です。- RELEASE: リリース パッケージのみを保存します。
- SNAPSHOT: スナップショット パッケージのみを保存します。
allow_snapshot_overwrites
は、SNAPSHOT
バージョン ポリシーで、リポジトリ内の既存のバージョンを上書きする一意でないスナップショットを受け入れるようにリポジトリを構成します。
次の例では、リリース バージョン ポリシーを持つ Maven リポジトリを定義しています。
provider "google" {
project = "my-project"
}
resource "google_artifact_registry_repository" "my-repo" {
provider = google-beta
location = "LOCATION"
repository_id = "my-repo"
description = "Maven repository"
format = "MAVEN"
mode = "REMOTE_REPOSITORY"
maven_config {
version_policy = "RELEASE"
}
}
npm
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "npm"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
npm_repository {
public_repository = "NPMJS"
}
}
cleanup_policy_dry_run = DRY_RUN_STATUS
cleanup_policies {
id = "POLICY_NAME"
action = "DELETE"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
older_than = "TIME_SINCE_UPLOAD"
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
most_recent_versions {
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
keep_count = KEEP_COUNT
}
}
}
場所
PROJECT-ID
は、Google Cloud プロジェクト ID です。LOCATION
は、リポジトリのロケーションです。REPOSITORY_ID
は、リポジトリ ID です。DESCRIPTION
はリポジトリの説明です(省略可能)。リポジトリの説明は暗号化されないため、機密データは含めないでください。KEY
は、Cloud Key Management Service 鍵の名前です(暗号化に顧客管理の暗号鍵(CMEK)を使用している場合)。デフォルト設定(Google が管理する暗号鍵)を使用する場合は、この引数を省略します。CONFIG_DESCRIPTION
は、リモートソースの説明です(省略可能)。DRY_RUN_STATUS
は、リポジトリにクリーンアップ ポリシーを設定する場合に、クリーンアップ ポリシーでアーティファクトを削除するか、または削除されるアーティファクトをログに記録するだけかを決定します。クリーンアップ ポリシーをリポジトリに追加しない場合は省略します。*true
: ドライラン モードで実行するポリシーを設定します。ドライラン モードでは、アーティファクトは削除されません。*false
: クリーンアップ ポリシーを適用します。アーティファクトは、ポリシーに応じて削除または保持されます。クリーンアップ ポリシーの詳細については、クリーンアップ ポリシーの設定をご覧ください。POLICY_NAME
は、クリーンアップ ポリシーの名前です。TAG_STATE
は、ポリシーを適用するタグの状態です。値はtagged
、untagged
、およびany
です。any
は、タグ付けされたアーティファクトとタグ付けされていないアーティファクトの両方に適用されます。リポジトリで不変のタグが有効になっている場合、タグ付けされたアーティファクトは削除できません。TAG_PREFIX
、TAG_PREFIX_N
は、ポリシーを適用するタグの接頭辞です。PKG_PREFIX
、PKG_PREFIX_N
は、ポリシーを適用するパッケージの接頭辞です。TIME_SINCE_UPLOAD
は、アーティファクト バージョンがリポジトリにアップロードされてからの時間(期間)です。それぞれ、s
、m
、h
、d
を追加することにより、秒、分、時、日の期間を指定できます。KEEP_COUNT
は、リポジトリに保持するアーティファクトのパッケージあたりのバージョン数です。
Python
provider "google" {
project = "PROJECT-ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "python"
kms_key_name = "KEY"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
python_repository {
public_repository = "PYPI"
}
}
cleanup_policy_dry_run = DRY_RUN_STATUS
cleanup_policies {
id = "POLICY_NAME"
action = "DELETE"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
older_than = "TIME_SINCE_UPLOAD"
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
condition {
tag_state = "TAG_STATE"
tag_prefixes = ["TAG_PREFIX", "TAG_PREFIX_N"]
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
}
}
cleanup_policies {
id = "POLICY_NAME"
action = "KEEP"
most_recent_versions {
package_name_prefixes = ["PKG_PREFIX", "PKG_PREFIX_N"]
keep_count = KEEP_COUNT
}
}
}
場所
PROJECT-ID
は、Google Cloud プロジェクト ID です。LOCATION
は、リポジトリのロケーションです。REPOSITORY_ID
は、リポジトリ ID です。DESCRIPTION
はリポジトリの説明です(省略可能)。リポジトリの説明は暗号化されないため、機密データは含めないでください。KEY
は、Cloud Key Management Service 鍵の名前です(暗号化に顧客管理の暗号鍵(CMEK)を使用している場合)。デフォルト設定(Google が管理する暗号鍵)を使用する場合は、この引数を省略します。CONFIG_DESCRIPTION
は、リモートソースの説明です(省略可能)。DRY_RUN_STATUS
は、リポジトリにクリーンアップ ポリシーを設定する場合に、クリーンアップ ポリシーでアーティファクトを削除するか、または削除されるアーティファクトをログに記録するだけかを決定します。クリーンアップ ポリシーをリポジトリに追加しない場合は省略します。*true
: ドライラン モードで実行するポリシーを設定します。ドライラン モードでは、アーティファクトは削除されません。*false
: クリーンアップ ポリシーを適用します。アーティファクトは、ポリシーに応じて削除または保持されます。クリーンアップ ポリシーの詳細については、クリーンアップ ポリシーの設定をご覧ください。POLICY_NAME
は、クリーンアップ ポリシーの名前です。TAG_STATE
は、ポリシーを適用するタグの状態です。値はtagged
、untagged
、およびany
です。any
は、タグ付けされたアーティファクトとタグ付けされていないアーティファクトの両方に適用されます。リポジトリで不変のタグが有効になっている場合、タグ付けされたアーティファクトは削除できません。TAG_PREFIX
、TAG_PREFIX_N
は、ポリシーを適用するタグの接頭辞です。PKG_PREFIX
、PKG_PREFIX_N
は、ポリシーを適用するパッケージの接頭辞です。TIME_SINCE_UPLOAD
は、アーティファクト バージョンがリポジトリにアップロードされてからの時間(期間)です。それぞれ、s
、m
、h
、d
を追加することにより、秒、分、時、日の期間を指定できます。KEEP_COUNT
は、リポジトリに保持するアーティファクトのパッケージあたりのバージョン数です。
Apt(プレビュー)
provider "google" {
project = "PROJECT_ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "APT"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
apt_repository {
public_repository {
repository_base = "REPOSITORY_BASE"
repository_path = "REPOSITORY_PATH"
}
}
}
}
ここで
- PROJECT-ID は、Google Cloud プロジェクト ID です。
- LOCATION は、リポジトリのロケーションです。
- REPOSITORY_ID は、リポジトリ ID です。
- DESCRIPTION はリポジトリの説明です(省略可能)。リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。
- CONFIG_DESCRIPTION は、リモートソースの説明です(省略可能)。
- REPOSITORY_BASE は、Apt のプリセット パブリック リポジトリ ベースです。有効な値は
DEBIAN
とUBUNTU
です。 - REPOSITORY_PATH は、ベースの特定のリポジトリです。例:
debian/dists/buster
Yum(プレビュー)
provider "google" {
project = "PROJECT_ID"
}
resource "google_artifact_registry_repository" "my-repo" {
location = "LOCATION"
repository_id = "REPOSITORY_ID"
description = "DESCRIPTION"
format = "YUM"
mode = "REMOTE_REPOSITORY"
remote_repository_config {
description = "CONFIG_DESCRIPTION"
yum_repository {
public_repository {
repository_base = "REPOSITORY_BASE"
repository_path = "REPOSITORY_PATH"
}
}
}
}
ここで
- PROJECT-ID は、Google Cloud プロジェクト ID です。
- LOCATION は、リポジトリのロケーションです。
- REPOSITORY_ID は、リポジトリ ID です。
- DESCRIPTION はリポジトリの説明です(省略可能)。リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。
- CONFIG_DESCRIPTION は、リモートソースの説明です(省略可能)。
- REPOSITORY_BASE は、Yum のプリセット パブリック リポジトリ ベースです。有効な値は
CENTOS
、CENTOS_DEBUG
、CENTOS_VAULT
、CENTOS_STREAM
、ROCKY
、EPEL
です。 - REPOSITORY_PATH は、ベースの特定のリポジトリです。例:
"centos/8-stream/BaseOS/x86_64/os
Artifact Registry がリポジトリを作成します。次のコマンドを実行してリポジトリの説明を表示します。
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
リポジトリを作成した後は:
- リポジトリへのアクセス権を付与します。
- Docker、パッケージ マネージャー、その他のサードパーティのクライアントをリポジトリに対して認証を行うように構成します。
- アップストリーム ソースに対して認証するように Artifact Registry リモート リポジトリを構成します。
- コンテナ イメージ: Docker Hub へのリモート リポジトリ認証を構成する
- 言語パッケージ:
- ユーザー定義のカスタム アップストリーム: リモート リポジトリのアップストリームに対する認証を構成する
リポジトリの説明を編集する
リポジトリの説明は、Google Cloud コンソールか gcloud CLI から変更できます。
Console
Google Cloud コンソールで [リポジトリ] ページを開きます。
リポジトリ リストでリポジトリを選択し、[リポジトリを編集] をクリックします。
リポジトリの説明を編集し、[保存] をクリックします。
gcloud
リポジトリの説明を更新するには次のコマンドを実行します。
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT \
--location=LOCATION \
--description="DESCRIPTION"
以下を置き換えます。
サービス境界内のアップストリーム ソースにアクセスする
VPC Service Controls のサービス境界内のサービスは、境界外のリソースへのアクセスを制限しています。
指定した Google Cloud プロジェクトとロケーション内のアップストリーム ソースへのアクセスを許可または拒否できます。
デフォルトでは、アクセス権を明示的に付与していない場合、Artifact Registry はアップストリーム ソースへのアクセスを拒否します。
Artifact Registry の場合、必要なロールは Artifact Registry 管理者(roles/artifactregistry.admin
)です。
アップストリーム ソースの設定を表示する
特定のプロジェクトとロケーションの組み合わせの構成を表示するには、次のコマンドを実行します。
gcloud artifacts vpcsc-config describe \
--project=PROJECT_ID \
--location=LOCATION
たとえば、プロジェクト my-project
の us-east1
にあるリモート リポジトリの設定を表示するには、次のコマンドを使用します。
gcloud artifacts vpcsc-config describe \
--project=my-project \
--location=us-east1
アップストリーム ソースへのアクセスを許可する
指定したロケーションにあるアップストリーム ソースへのアクセスを許可するには、次のコマンドを実行します。
gcloud artifacts vpcsc-config allow \
--project=PROJECT_ID \
--location=LOCATION
たとえば、次のコマンドを使用して、プロジェクト my-project
の us-east1
にあるすべてのリモート リポジトリが境界外のアップストリーム ソースにアクセスできるようにします。
gcloud artifacts vpcsc-config allow \
--project=my-project \
--location=us-east1
アップストリーム ソースへのアクセスを拒否する
アップストリーム ソースへのアクセスを拒否しても、リモート リポジトリ内のキャッシュに保存された既存のアーティファクトは引き続き使用できます。
指定したロケーションにあるアップストリーム ソースへのアクセスを拒否するには、次のコマンドを実行します。
gcloud artifacts vpcsc-config deny \
--project=PROJECT_ID \
--location=LOCATION
たとえば、プロジェクト my-project
の us-west1
にあるすべてのリモート リポジトリに対して、境界外のアップストリーム ソースへのアクセスをブロックするには、次のコマンドを使用します。
gcloud artifacts vpcsc-config deny \
--project=my-project \
--location=us-west1
次のステップ
- Docker Hub リモート リポジトリを作成します。
- Artifact Registry のリモート リポジトリの詳細を確認する。
- Docker Hub へのリモート リポジトリ認証を構成する。