すべてのプロダクト
Search
ドキュメントセンター

Container Registry:OCI V1.1.0を使用して、コンテナイメージとその派生アーティファクトを管理し、コンテナイメージを派生アーティファクトに関連付ける

最終更新日:Sep 18, 2024

4月2024日以降、新しく作成されたContainer Registry Enterprise Editionインスタンスは、参照タイプのサポートを含むOpen Container Initiative (OCI) Image and Distribution Specification V1.1.0をサポートします。 つまり、コンテナーイメージを保存および配布し、イメージ署名やSBOM (Software Bills of Materials) などの関連するOCIアーティファクトを管理および配布できます。 これにより、コンテナイメージを管理するのと同じ方法で、これらのOCIアーティファクトを管理および配布できます。 このトピックでは、Container RegistryでOCI V1.1.0の機能を使用する方法について説明します。

前提条件

  • OCI Registry As Storage (ORAS) クライアントがオンプレミスマシンにインストールされます。 詳細については、「インストール」をご参照ください。

  • Dockerはオンプレミスマシンにインストールされています。 詳細については、「LinuxインスタンスへのDockerのインストールと使用」をご参照ください。

  • Container Registry Enterprise Editionインスタンスの仮想プライベートクラウド (VPC) アクセス制御リスト (ACL) が設定されているか、インターネットアクセスが有効になっています。 このトピックでは、インターネットアクセスが有効になっています。 詳細については、「インターネット経由のアクセスの設定」をご参照ください。

  • Container Registry Enterprise Editionインスタンスへのログインに使用されるパスワードが取得されます。 パスワードを忘れた場合は、アクセス資格情報を設定してパスワードをリセットできます。 詳細については、「Container Registry Enterprise Editionインスタンスのアクセス資格情報の設定」をご参照ください。

手順1: Referrers APIを使用して、コンテナイメージをその派生アーティファクトに関連付ける

リファラーAPIは、OCI V1.1.0で提案されている機能であり、SBOM、署名、脆弱性スキャン結果などの派生アーティファクトにコンテナイメージを関連付けることを目的としています。 Referrers APIを使用すると、特定のソフトウェアアーティファクトのソースを効果的に追跡できるため、イメージセキュリティとコンプライアンス管理およびレビューの効率が向上します。 次の例は、Referrers APIを使用してコンテナイメージのSBOMを生成し、コンテナイメージをSBOMに関連付ける方法を示しています。

環境でdocker sbomコマンドを実行できない場合は、sbom-cli-pluginコンポーネントをインストールして構成する必要があります。

sbom-cli-pluginコンポーネントのインストールと設定

環境でdocker sbomコマンドを実行できない場合は、次の手順を実行してsbom-cli-pluginコンポーネントをインストールして構成します。

  1. sbom-cli-pluginコンポーネントをインストールします。

    wget "https://github.com/docker/sbom-cli-plugin/releases/download/v0.6.1/sbom-cli-plugin_0.6.1_linux_amd64.tar.gz"
  2. コンポーネントディレクトリを作成します。

    mkdir -p /root/.docker/cli-plugins
  3. 作成したディレクトリにTARパッケージを解凍します。

    tar -zxvf sbom-cli-plugin_0.6.1_linux_amd64.tar.gz -C  /root/.docker/cli-plugins

次の例は、Referrers APIを使用して、<Name of The container Registry Enterprise Edition instanc e>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20でホストされているコンテナーイメージをコンテナーイメージのSBOMに関連付ける方法を示しています。

  1. Container Registry Enterprise Editionインスタンスのドメイン名を指定し、ユーザー名とログインパスワードを入力します。

    Container Registry Enterprise Editionインスタンスにログインすると、ログイン成功が表示されます。

    docker login <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com
    Username: ****@test.com
    Password:
    Login Succeeded
  2. 次のコマンドを実行して、コンテナイメージのSBOMを生成します。

    docker sbom <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20 --format spdx-json -o sbom.jsom

    期待される出力:

    13

  3. 次のコマンドを実行して、コンテナイメージをSBOMに関連付けます。

     oras attach  --distribution-spec v1.1-referrers-api <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20 sbom.jsom --artifact-type example/sbom

    期待される出力:

    14

  4. 次のコマンドを実行して、コンテナイメージとSBOMの間の関連付けを表示します。

    oras discover  --distribution-spec v1.1-referrers-api <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20

    期待される出力:

    15

手順2: container Registry Enterprise Editionインスタンス間でコンテナイメージとそれに関連する派生アーティファクトを配布

Container Registry Enterprise Editionでは、ORASクライアントなどのツールを使用して、container Registry Enterprise Editionインスタンス間でコンテナイメージとそれに関連する派生アーティファクトを配布できます。 この例では、コンテナイメージとそれに関連付けられたSBOMは、container Registry Enterprise Editionインスタンス間でコピーされます。

<Name of the source container Registry Enterprise Edition instanc e>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20でホストされているコンテナイメージとそれに関連するSBOMを、<Name of the destination Container Registry Enterprise Edition instanc e>-registry.cn-beijing.cr.aliyuncs.comドメインのイメージリポジトリに配布するには、destination Container Registry Enterprise Editionインスタンスのイメージリポジトリにログインする必要があります。

  1. ターゲットContainer Registry Enterprise Editionインスタンスのドメイン名を指定し、ユーザー名とログインパスワードを入力します。

    ターゲットContainer Registry Enterprise Editionインスタンスにログインすると、ログイン成功が表示されます。

    docker login <Name of the destination Container Registry Enterprise Edition instance>-registry.cn-beijing.cr.aliyuncs.com
    Username: ****@test.com
    Password:
    Login Succeeded
  2. 次のコマンドを実行して、コンテナーイメージと関連するSBOMを、ターゲットcontainer Registry Enterprise Editionインスタンスのイメージリポジトリに配布します。

    $ oras cp -r --from-distribution-spec v1.1-referrers-api --to-distribution-spec v1.1-referrers-api <Name of the source Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/library/golang:1.20 <Name of the destination Container Registry Enterprise Edition instance>-registry.cn-beijing.cr.aliyuncs.com/library/golang:1.20

    期待される出力:

    16

  3. 次のコマンドを実行して、SBOMがターゲットContainer Registry Enterprise Editionインスタンスのイメージリポジトリに配布されていることを確認します。

    oras discover  --distribution-spec v1.1-referrers-api <Name of the destination Container Registry Enterprise Edition instance>-registry.cn-beijing.cr.aliyuncs.com/library/golang:1.20

    期待される出力:

    17