このページでは、Artifact Registry にアタッチメントとして保存されたアーティファクトに関連するメタデータを管理する方法について説明します。
アタッチメントは、Artifact Registry に保存されている関連アーティファクトに関するメタデータを保存するファイルです。アタッチメントの作成方法については、アタッチメントにアーティファクト メタデータを保存するをご覧ください。
始める前に
省略可: Google Cloud CLI コマンドのデフォルトを構成します。
必要なロール
アタッチメントの管理に必要な権限を取得するには、リポジトリに対する次の IAM ロールの付与を管理者に依頼してください。
-
アタッチメントを表示、ダウンロードする:
Artifact Registry 読み取り (
roles/artifactregistry.reader
) -
アタッチメントを作成する:
Artifact Registry 書き込み (
roles/artifactregistry.writer
) -
アタッチメントを削除する:
Artifact Registry リポジトリ管理者 (
roles/artifactregistry.repoAdmin
)
ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
リストの添付ファイル
Artifact Registry のアーティファクトには、そのアーティファクトを参照するアタッチメントを任意の数で追加できます。アタッチメントを一覧表示するには、 Trusted Cloud コンソール、gcloud CLI、または(Docker 形式のコンテナ イメージの場合のみ)Oras を使用します。
コンソール(Docker のみ)
Trusted Cloud コンソールで、[リポジトリ] ページを開きます。
リポジトリ名をクリックして、リポジトリ内のイメージを表示します。
イメージのバージョンを表示するには、イメージ名をクリックします。
該当するイメージ バージョンをクリックします。
そのバージョンのアタッチメントを表示するには、[アタッチメント] タブをクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
TARGET
: 完全修飾バージョン名。Docker イメージの場合のみ、添付ファイルが参照するアーティファクトの Artifact Registry URI を使用することもできます。URI では、ダイジェストを使用できます。Docker イメージの場合は、タグを使用できます(例:u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:tag1
)。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud artifacts attachments list \ --target=TARGET
Windows(PowerShell)
gcloud artifacts attachments list ` --target=TARGET
Windows(cmd.exe)
gcloud artifacts attachments list ^ --target=TARGET
gcloud artifacts attachments list
コマンドをご覧ください。
Oras(Docker のみ)
コマンドを実行する前に、次のように置き換えます。
IMAGE_URI
: リストされたアタッチメントで参照されるターゲット イメージの URI。
oras discover --distribution-spec v1.1-referrers-api IMAGE_URI
次の例では、URI とタグで識別されるコンテナ イメージ my-image
のアタッチメントを一覧表示します。
oras discover --distribution-spec v1.1-referrers-api \
u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:tag1
ここで
v1.1-referrers-api
は使用される Referrer API です。詳細については、分布仕様をご覧ください。u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image:tag1
は、アタッチメントを一覧表示するコンテナ イメージ バージョンのタグを含む URI です。
完全なガイドとその他の例については、oras discover
のドキュメントをご覧ください。
添付ファイルの説明を取得する
後述のコマンドデータを使用する前に、次のように置き換えます。
ATTACHMENT
: アタッチメントの完全修飾名(projects/my-project/locations/u-france-east1/repositories/my-repo/attachments/my-attachment
など)。または、添付ファイル ID のみを提供し、--location
フラグと--repository
フラグを使用します。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud artifacts attachments describe ATTACHMENT
Windows(PowerShell)
gcloud artifacts attachments describe ATTACHMENT
Windows(cmd.exe)
gcloud artifacts attachments describe ATTACHMENT
gcloud artifacts attachments describe
コマンドをご覧ください。
アタッチメントをダウンロード
アタッチメントをダウンロードするには、gcloud CLI を使用します。Docker 形式のコンテナ イメージの場合は、Oras も使用できます。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
ATTACHMENT
: アタッチメントの完全修飾名(projects/my-project/locations/u-france-east1/repositories/my-repo/attachments/my-attachment
など)。または、添付ファイル ID のみを提供し、--location
フラグと--repository
フラグを使用します。DESTINATION
: アタッチメントをダウンロードするローカル ファイル システム内のパス。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud artifacts attachments download ATTACHMENT \ --destination=DESTINATION
Windows(PowerShell)
gcloud artifacts attachments download ATTACHMENT ` --destination=DESTINATION
Windows(cmd.exe)
gcloud artifacts attachments download ATTACHMENT ^ --destination=DESTINATION
ATTACHMENT
を指定する代わりに、--oci-version-name
フラグの後に添付ファイルの完全なバージョン名または Artifact Registry URI を指定できます。ダイジェストまたはタグ(例: projects/my-project/locations/u-france-east1/repositories/my-repo/packages/my-package/versions/sha256:abc123
)を使用できます。詳細については、
gcloud artifacts attachments download
コマンドをご覧ください。
Oras(Docker のみ)
コマンドを実行する前に、次のように置き換えます。
DESTINATION
: アタッチメントの宛先ディレクトリ。ATTACHMENT_URI
: ダウンロードする添付ファイルの URI。これは、添付ファイルが参照するイメージ コンテナの URI と、添付ファイルの一意の SHA です。
oras pull -o DESTINATION ATTACHMENT_URI
次の例では、URI とダイジェストで識別されるアタッチメントをダウンロードします。
oras pull -o . u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image@sha256:xxxx
ここで
-o .
は、現在のディレクトリをダウンロード先として指定します。u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image@sha256:xxxx
は、ダウンロードするアタッチメントのダイジェストを含むイメージ URI です。
完全なガイドとその他の例については、oras pull
のドキュメントをご覧ください。
アタッチメントの削除
アタッチメントは、 Trusted Cloud コンソールまたは gcloud CLI を使用して直接削除できます。アタッチメントを間接的に削除するには、アタッチメントが参照しているアーティファクトを削除します。
アタッチメントを直接削除する
アタッチメントを直接削除するには、次のいずれかの方法を使用します。
コンソール(Docker のみ)
Trusted Cloud コンソールで、[リポジトリ] ページを開きます。
リポジトリ名をクリックして、リポジトリ内のイメージを表示します。
イメージ名をクリックすると、そのイメージのバージョンが表示されます。
アタッチメントを表示するイメージのバージョンをクリックします。
[アタッチメント] タブをクリックして、そのアタッチメントのバージョンを表示します。
削除するアタッチメントのダイジェストをクリックします。
[削除] をクリックします。
確認ダイアログで [削除] をクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
ATTACHMENT
: アタッチメントの完全修飾名(projects/my-project/locations/u-france-east1/repositories/my-repo/attachments/my-attachment
など)。または、添付ファイル ID のみを提供し、--location
フラグと--repository
フラグを使用します。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud artifacts attachments delete ATTACHMENT
Windows(PowerShell)
gcloud artifacts attachments delete ATTACHMENT
Windows(cmd.exe)
gcloud artifacts attachments delete ATTACHMENT
gcloud artifacts attachments delete
コマンドをご覧ください。
アタッチメントを間接的に削除する
アーティファクトが削除されると、削除されたアーティファクトのバージョン名を target
として持つすべての添付ファイルも削除されます。これは、アーティファクトの手動削除と、クリーンアップ ポリシーによる削除の両方に適用されます。
次のステップ
- ソフトウェア サプライ チェーンのセキュリティについて確認する。
- ソフトウェア部品構成表(SBOM)の詳細を確認する