このページでは、Artifact Registry の標準リポジトリを作成する方法について説明します。
標準リポジトリは、限定公開アーティファクト用のリポジトリです。アーティファクトは、標準リポジトリにアップロードし、標準リポジトリから直接ダウンロードします。
各リポジトリには、一種類のサポートされている形式のアーティファクトを含めることができます。
始める前に
- Artifact Registry を有効にします。これには、Artifact Registry API の有効化と Google Cloud CLI のインストールが含まれます。
- (省略可)gcloud コマンドのデフォルトを構成します。
- リポジトリのコンテンツを暗号化するために顧客管理の暗号鍵(CMEK)が必要な場合は、リポジトリで Cloud KMS の鍵を作成して有効化します。
必要なロール
リポジトリの作成に必要な権限を取得するには、管理者に Trusted Cloud by S3NS プロジェクトに対する Artifact Registry 管理者 (roles/artifactregistry.admin
)IAM ロールの付与を依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
標準リポジトリを作成する
リポジトリを作成する際は、次の設定を構成する必要があります。この設定は、リポジトリの作成後に変更できません。
- アーティファクトの形式。
- リポジトリ モード。
- リポジトリのロケーション。
- Google Cloud-powered encryption keys または顧客管理の暗号鍵による暗号化。Artifact Registry は、デフォルトでGoogle Cloud-powered encryption keys を使用します。
Artifact Registry では組織のポリシーの制約が適用され、CMEK でリソースを暗号化するか、CMEK の保護に使用できる Cloud KMS 鍵を制限する必要があります。
Google Cloud コンソールを使用してリポジトリを作成する
Google Cloud コンソールで [リポジトリ] ページを開きます。
[リポジトリを作成] をクリックします。
リポジトリ名を指定します。プロジェクト内のリポジトリの場所ごとに、リポジトリ名は一意であることが必要です。
リポジトリの形式を選択します。
複数のリポジトリ モードが使用可能な場合は、[標準] を選択します。
リポジトリのロケーションを選択します。ロケーション タイプとサポートされているロケーションについては、リポジトリのロケーションをご覧ください。
リポジトリの説明を追加します。説明は、リポジトリの目的とリポジトリに含まれるアーティファクトの種類の識別に役立ちます。
リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。
リポジトリの整理に ラベル を使用する場合は、ラベルの追加をクリックし、ラベルの Key-Value ペアを入力します。リポジトリを作成した後にラベルを追加、編集、削除できます。
[暗号化] セクションで、リポジトリの暗号化方式を選択します。
- Google Cloud-powered encryption key -Google Cloud-powered encryption keyを使用してリポジトリのコンテンツを暗号化します。
顧客管理の暗号鍵 - Cloud Key Management Service で管理する鍵を使用してリポジトリのコンテンツを暗号化します。鍵の設定手順については、リポジトリの CMEK の設定をご覧ください。
Docker リポジトリの場合、不変のイメージタグ設定(プレビュー)は、常に同じイメージ ダイジェストを指すイメージタグを使用するようにリポジトリを構成します。Artifact Registry 管理者ロールを持つユーザーは、リポジトリの作成後にこの設定を変更できます。
- デフォルトでは、この設定は無効になっています。イメージタグは変更可能です。つまり、タグが指すイメージ ダイジェストは変更される可能性があります。
- この設定を有効にすると、イメージタグは不変になります。タグは常に同じイメージ ダイジェストを指す必要があります。可変イメージタグと不変イメージタグの詳細については、コンテナ イメージのバージョンをご覧ください。
[作成] をクリックします。
Artifact Registry でリポジトリが作成され、リポジトリのリストに追加されます。
リポジトリを作成した後は:
- リポジトリへのアクセス権を付与します。
Docker、パッケージ マネージャー、その他のサードパーティのクライアントをリポジトリに対して認証を行うように構成します。
Google Cloud CLI を使用してリポジトリを作成する
次のコマンドを実行して新しいリポジトリを作成します。
Apt
gcloud artifacts repositories create REPOSITORY \ --repository-format=apt \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
以下を置き換えます。
REPOSITORY
: リポジトリの名前 プロジェクト内のリポジトリのロケーションごとに、リポジトリ名は一意でなければなりません。LOCATION
: リポジトリのリージョン ロケーション。デフォルトを設定すると、このフラグを省略できます。サポートされているリポジトリのロケーションの一覧を表示するには、次のコマンドを実行します。gcloud artifacts locations list
DESCRIPTION
: リポジトリの説明。 リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。KMS-KEY
: リポジトリ コンテンツの暗号化に顧客管理の暗号鍵を使用している場合、Cloud KMS 暗号鍵のフルパス。パスの形式は次のとおりです。projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
以下を置き換えます。
KMS-PROJECT
: 鍵が保存されているプロジェクトKMS-LOCATION
: 鍵のロケーション。KEY-RING
: キーリングの名前。KEY
: 鍵の名前
--async
: 処理中のオペレーションの完了を待たずに、直ちに戻ります。
Docker
gcloud artifacts repositories create REPOSITORY \
--repository-format=docker \
--location=LOCATION \
--description="DESCRIPTION" \
--kms-key=KMS-KEY \
--immutable-tags \
--async \
--disable-vulnerability-scanning
以下を置き換えます。
REPOSITORY
: リポジトリの名前 プロジェクト内のリポジトリのロケーションごとに、リポジトリ名は一意でなければなりません。LOCATION
: リポジトリのリージョン ロケーション。デフォルトのロケーションを設定すると、このフラグを省略できます。サポートされているロケーションの一覧を表示するには、次のコマンドを実行します。gcloud artifacts locations list
DESCRIPTION
: リポジトリの説明。リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。KMS-KEY
: リポジトリ コンテンツの暗号化に顧客管理の暗号鍵を使用している場合、Cloud KMS 暗号鍵のフルパス。パスの形式は次のとおりです。projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
以下を置き換えます。
KMS-PROJECT
: 鍵が保存されているプロジェクトKMS-LOCATION
: 鍵のロケーション。KEY-RING
: キーリングの名前。KEY
: 鍵の名前
--immutable-tags
は、常に同じイメージ ダイジェストを指すタグを使用するようにリポジトリを構成するオプションのフラグです。デフォルトでは、
--immutable-tags
フラグが渡されていない場合、タグを別のイメージ ダイジェストに移動できます。不変イメージタグと変更可能なイメージタグの詳細については、コンテナ イメージのバージョンをご覧ください。--async
は処理中のオペレーションの完了を待たずに、直ちにコマンドを終了します。
Yum
gcloud artifacts repositories create REPOSITORY \ --repository-format=yum \ --location=LOCATION \ --description="DESCRIPTION" \ --kms-key=KMS-KEY \ --async
以下を置き換えます。
REPOSITORY
: リポジトリの名前 プロジェクト内のリポジトリのロケーションごとに、リポジトリ名は一意でなければなりません。LOCATION
: リポジトリのリージョン ロケーション。デフォルトを設定すると、このフラグを省略できます。サポートされているリポジトリのロケーションの一覧を表示するには、次のコマンドを実行します。gcloud artifacts locations list
DESCRIPTION
: リポジトリの説明。 リポジトリの説明は暗号化されないため、センシティブ データは含めないでください。KMS-KEY
: リポジトリ コンテンツの暗号化に顧客管理の暗号鍵を使用している場合、Cloud KMS 暗号鍵のフルパス。パスの形式は次のとおりです。projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
以下を置き換えます。
KMS-PROJECT
: 鍵が保存されているプロジェクトKMS-LOCATION
: 鍵のロケーション。KEY-RING
: キーリングの名前。KEY
: 鍵の名前
--async
: 処理中のオペレーションの完了を待たずに、直ちに戻ります。
Artifact Registry がリポジトリを作成します。次のコマンドを実行してリポジトリの説明を表示します。
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
リポジトリを作成した後は:
- リポジトリへのアクセス権を付与します。
Docker、パッケージ マネージャー、その他のサードパーティのクライアントをリポジトリに対して認証を行うように構成します。
Terraform を使用してリポジトリを作成する
google_artifact_registry_repository リソースを使用して、リポジトリを作成します。
terraform-provider-google
のバージョン 5.0.0
以降が必要です。
Trusted Cloud by S3NSで Terraform を初めて使用する場合は、HashiCorp ウェブサイトのスタートガイド - Trusted Cloud by S3NS ページをご覧ください。
次の例では、プロバイダと、Terraform リソース名が my-repo
のリポジトリを定義します。
Apt
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "apt" kms_key_name = "KEY" }
以下を置き換えます。
PROJECT-ID
は、 Trusted Cloud プロジェクト ID です。LOCATION
は、リポジトリのロケーションです。REPOSITORY
は、リポジトリの名前です。DESCRIPTION
はリポジトリの説明です(省略可能)。リポジトリの説明は暗号化されないため、機密データは含めないでください。KEY
は、Cloud Key Management Service 鍵の名前です(暗号化に顧客管理の暗号鍵(CMEK)を使用している場合)。デフォルト設定(Google が管理する暗号鍵)を使用する場合は、この引数を省略します。
Docker
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "docker" kms_key_name = "KEY" }
以下を置き換えます。
PROJECT-ID
は、 Trusted Cloud プロジェクト ID です。LOCATION
は、リポジトリのロケーションです。REPOSITORY
は、リポジトリの名前です。DESCRIPTION
はリポジトリの説明です(省略可能)。リポジトリの説明は暗号化されないため、機密データは含めないでください。KEY
は、Cloud Key Management Service 鍵の名前です(暗号化に顧客管理の暗号鍵(CMEK)を使用している場合)。デフォルト設定(Google が管理する暗号鍵)を使用する場合は、この引数を省略します。
Yum
provider "google" { project = "PROJECT-ID" }
resource "google_artifact_registry_repository" "my-repo" { location = "LOCATION" repository_id = "REPOSITORY" description = "DESCRIPTION" format = "yum" kms_key_name = "KEY" }
以下を置き換えます。
PROJECT-ID
は、 Trusted Cloud プロジェクト ID です。LOCATION
は、リポジトリのロケーションです。REPOSITORY
は、リポジトリの名前です。DESCRIPTION
はリポジトリの説明です(省略可能)。リポジトリの説明は暗号化されないため、機密データは含めないでください。KEY
は、Cloud Key Management Service 鍵の名前です(暗号化に顧客管理の暗号鍵(CMEK)を使用している場合)。デフォルト設定(Google が管理する暗号鍵)を使用する場合は、この引数を省略します。
Artifact Registry がリポジトリを作成します。次のコマンドを実行してリポジトリの説明を表示します。
gcloud artifacts repositories describe REPOSITORY \
--location=LOCATION
リポジトリを作成した後は:
- リポジトリへのアクセス権を付与します。
Docker、パッケージ マネージャー、その他のサードパーティのクライアントをリポジトリに対して認証を行うように構成します。
リポジトリの説明を編集する
リポジトリの説明は、Google Cloud コンソールか gcloud CLI から変更できます。
Console
Google Cloud コンソールで [リポジトリ] ページを開きます。
リポジトリ リストでリポジトリを選択し、[リポジトリを編集] をクリックします。
リポジトリの説明を編集し、[保存] をクリックします。
gcloud
リポジトリの説明を更新するには次のコマンドを実行します。
gcloud artifacts repositories update REPOSITORY \
--project=PROJECT \
--location=LOCATION \
--description="DESCRIPTION"
以下を置き換えます。