リポジトリの作成と管理

このページでは、Artifact Registry リポジトリを追加、表示、削除する方法について説明します。

始める前に

  1. Artifact Registry API の有効化と Cloud SDK のインストールを含め、Artifact Registry を有効にします
  2. (省略可)gcloud コマンドのデフォルトを構成します

概要

アーティファクトをアップロードする前にリポジトリを作成する必要があります。各リポジトリには、単一のサポート対象形式のアーティファクトを含めることができます。

すべてのリポジトリのコンテンツは、Google が管理する暗号鍵または顧客管理の暗号鍵のいずれかを使用して暗号化されます。Artifact Registry はデフォルトで Google が管理する暗号鍵を使用するため、このオプションの構成は不要です。

リポジトリの CMEK の設定

デフォルトでは、Google Cloud は、Cloud Key Management Service で管理されている Google 管理の暗号鍵を使用して、保存されているデータの暗号化を自動的に行います。データを保護する鍵について、特定のコンプライアンス要件または規制要件がある場合は、顧客管理の暗号鍵(CMEK)を使用してリポジトリのコンテンツを暗号化するリポジトリを作成できます。

CMEK で暗号化するリポジトリを作成する前に、Cloud KMS で鍵を作成して有効にする必要があります。その後、キーを作成するときに、リポジトリにキーを割り当てることができます。

既存のリポジトリの暗号化メカニズムを変更することはできません。CMEK で暗号化されたリポジトリがある場合は、暗号化メカニズムを Google のデフォルトの暗号化に変更する、または別の Cloud KMS 鍵を暗号化に使用するために割り当てることはできません。

リポジトリの作成

リポジトリを作成する際は、次の設定を選択する必要があります。

  • リポジトリに保存されるアーティファクトの形式。
  • リージョンまたはマルチリージョンのロケーション
  • Cloud Key Management Service 鍵(顧客管理の暗号鍵を使用している場合)

リポジトリの作成後に、これらの設定を変更することはできません。

新しいリポジトリを作成して構成するには:

  1. CMEK を使用してリポジトリ データを暗号化する場合は、このリポジトリで使用する鍵を作成し、鍵を使用するための権限を付与します。顧客管理の暗号鍵の有効化をご覧ください。

  2. リポジトリを追加します。

    コンソール

    1. Cloud Console で [リポジトリ] ページを開きます。

      [リポジトリ] ページを開く

    2. [リポジトリを作成] をクリックします。

    3. リポジトリ名を指定します。プロジェクト内のリポジトリの場所ごとに、リポジトリ名は一意であることが必要です。

    4. リポジトリの形式を指定します。次の形式がサポートされています。

      • Docker
      • Maven(アルファ版)
      • npm(アルファ版)
    5. [Location Type] で、リポジトリの場所を選択します。

      1. ロケーション タイプとして [リージョン] または [マルチリージョン] を選択します。選択内容に合わせてロケーションのリストが変更されます。

      2. [リージョン] または [マルチリージョン] リストで、ロケーションを選択します。

      ロケーション タイプとサポートされているロケーションについては、リポジトリの整理をご覧ください。

    6. リポジトリの説明を追加します。説明は、リポジトリの目的とリポジトリに含まれるアーティファクトの種類を識別するうえで有用です。

    7. ラベルを使用してリポジトリを整理する場合は、[ラベルを追加] をクリックして、ラベルの Key-Value ペアを入力します。リポジトリの作成後に、ラベルを追加、編集、削除できます。

    8. [暗号化] セクションで、リポジトリの暗号化メカニズムを選択します。

      • Google が管理する鍵 - Google が管理する暗号鍵を使用してリポジトリのコンテンツを暗号化する。
      • 顧客管理の暗号鍵 - Cloud Key Management Service でお客様が管理する鍵を使用してリポジトリのコンテンツを暗号化します。鍵の設定手順については、リポジトリの CMEK の設定をご覧ください。
    9. [作成] をクリックします。

    gcloud

    次のコマンドを実行して、新しいリポジトリを作成します。

    gcloud artifacts repositories create REPOSITORY \
    --repository-format=FORMAT [--location=LOCATION] \
    [--description=DESCRIPTION] [--kms-key=KMS-KEY] [--async]
    

    ここで

    • REPOSITORY はリポジトリの名前です。 プロジェクト内のリポジトリの場所ごとに、リポジトリ名は一意であることが必要です。
    • FORMAT はリポジトリ形式です。サポートされている値は次のとおりです。

      • docker
      • maven(アルファ版)
      • npm(アルファ版)
    • LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。default を設定した場合は、このフラグを省略できます。サポートされているロケーションのリストを表示するには、次のコマンドを実行します。

      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 は処理中のオペレーションの完了を待たずに、直ちにコマンドを終了します。

    このコマンドの詳細をご覧になるには、次のコマンドを実行します。

     gcloud artifacts repositories create --help
    

    Terraform

    Terraform を使用したリポジトリのプロビジョニングと、リポジトリの権限の付与については、Terraform との統合をご覧ください。

  3. リポジトリにアクセスするための権限を付与します。

    プロジェクト レベルで Artifact Registry のロールが付与されている場合、それらのロールはプロジェクト内のリポジトリによって継承されます。チームメンバーにプロジェクト内に存在するリポジトリへの異なるレベルのアクセス権を付与する場合は、リポジトリ レベルでロールを付与します。

  4. Docker またはパッケージ マネージャーからリポジトリを操作するには、これらのツールに対して認証を構成する必要があります。該当するページをご覧ください。

リポジトリへのラベル付け

ラベルは、stage:productionteam:development などの関連付けられているリポジトリを特定しグループ化する目的で使用できる Key-Value ペアです。詳しくは、ラベルの作成と管理をご覧ください。

リポジトリの説明の更新

次のコマンドを使用して、既存のリポジトリの説明を更新できます。

gcloud artifacts repositories update REPOSITORY [--project=PROJECT] \
[--location=LOCATION] --description=DESCRIPTION

場所

  • REPOSITORY はリポジトリの名前です。 default リポジトリを構成した場合は、このフラグを省略してデフォルトを使用できます。
  • PROJECT は、Google Cloud プロジェクト ID です。 このフラグを省略すると、現在のプロジェクトまたはデフォルトのプロジェクトが使用されます。
  • LOCATION は、リージョンまたはマルチリージョンのロケーションです。特定の場所にあるリポジトリを表示するには、このフラグを使用します。default ロケーションを構成した場合は、このフラグを省略してデフォルトを使用できます。
  • DESCRIPTION はリポジトリの説明です。

このコマンドの詳細をご覧になるには、次のコマンドを実行します。

 gcloud artifacts repositories update --help

リポジトリの表示

Google Cloud プロジェクト内のリポジトリを表示できます。

リポジトリのリストを表示するには:

コンソール

Cloud Console で [リポジトリ] ページを開きます。

[リポジトリ] ページを開く

ページにリポジトリのリストが表示されます。

Artifact Registry リポジトリのリストをフィルタリングするには:

  1. リポジトリ リストの上の [テーブルをフィルタ] をクリックします。
  2. フィルタリストからフィルタを選択します。
  3. リストのフィルタリングに使用する値を指定します。

gcloud

既存のリポジトリを一覧表示するには、次のコマンドを実行します。

gcloud artifacts repositories list [--project=PROJECT] \
[--location=LOCATION]

リポジトリ用に構成された暗号化のタイプを表示するには、次のコマンドを実行します。

gcloud artifacts repositories describe REPOSITORY \
[--project=PROJECT] [--location=LOCATION]

これらのコマンドで、次の値を置き換えます。

  • PROJECT は、プロジェクト ID です。 このフラグを省略すると、現在のプロジェクトまたはデフォルトのプロジェクトが使用されます。
  • REPOSITORY はリポジトリの名前です。
  • LOCATION は、リージョンまたはマルチリージョンのロケーションです。特定の場所にあるリポジトリを表示するには、このフラグを使用します。--location=all を使用して、すべてのロケーションのリポジトリを一覧表示することもできます。

    このフラグを省略すると、このコマンドはデフォルトが構成されている場合に default のロケーションを使用します。それ以外の場合は、このフラグを省略すると、すべてのロケーションのリポジトリが一覧表示されます。

このコマンドの詳細をご覧になるには、次のコマンドを実行します。

 gcloud artifacts repositories list --help

リポジトリの削除

リポジトリを削除する前に、保持する必要があるパッケージが別の場所で使用可能であることを確認してください。

リポジトリを削除するには、次の手順に従います。

コンソール

  1. Cloud Console で [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. リポジトリ リストで、削除するリポジトリを選択します。

  3. [削除] をクリックします。

gcloud

リポジトリを削除するには、次のコマンドを実行します。

gcloud artifacts repositories delete REPOSITORY \
[--location=LOCATION] [--async]

ここで

  • REPOSITORY はリポジトリの名前です。
  • LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。default を設定した場合は、このフラグを省略できます。
  • --async は処理中のオペレーションの完了を待たずに、直ちにコマンドを終了します。

このコマンドの詳細をご覧になるには、次のコマンドを実行します。

 gcloud artifacts repositories delete --help

次のステップ