シークレットをローテーションする

このページでは、署名付きリクエストに使用される Media CDN キーを更新する方法について説明します。鍵セットあたり、公開鍵と共有検証鍵をそれぞれ 3 つまで、合計 6 つの鍵を指定できます。鍵のローテーション中にこれらの上限を超えないようにするには、検証共有鍵の削除方法と鍵の追加方法に関する次の手順をご覧ください。

始める前に

  1. Secret Manager で検証共有鍵を構成する

  2. Media CDN サービス アカウントに Secret Manager アクセスロールroles/secretmanager.secretAccessor)を付与します。

    Console

    1. Google Cloud コンソールで、[Secret Manager] ページに移動します。

      Secret Manager に移動

    2. シークレットを選択します。
    3. 情報パネルで [プリンシパルを追加] をクリックします。
    4. [新しいプリンシパル] に、Media CDN サービス アカウントを次のように入力します。
      service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

      PROJECT_NUMBER は、使用するプロジェクト番号に置き換えます。

    5. [ロールを選択] で [Secret Manager] を選択し、[Secret Manager のシークレット アクセサー] を選択します。
    6. [保存] をクリックします。

    gcloud

    gcloud secrets add-iam-policy-binding コマンドを使用します。

       gcloud secrets add-iam-policy-binding projects/PROJECT_NUMBER/secrets/SECRET_ID \
           --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com" \
           --role="roles/secretmanager.secretAccessor"
        

    次のように置き換えます。

    • PROJECT_NUMBER: プロジェクトの番号
    • SECRET_ID: シークレットの ID

シークレットを削除する

コンソール

  1. Google Cloud コンソールで、[Media CDN] ページに移動します。

    Media CDN に移動

  2. [鍵セット] タブをクリックします。

  3. 削除するシークレットがある鍵セットを選択し、[編集] をクリックします。

  4. シークレットを削除するには、[鍵] > [検証共有鍵] セクションで、シークレット名の次の [削除] をクリックします。

  5. [キーセットを更新] をクリックします。

gcloud

キーセットから秘密鍵を削除するには、gcloud edge-cache keysets update コマンドを使用します。削除する鍵セットを省略し、保持する鍵セットを指定します。

次の例では、KEY_VERSION_1 はリストに表示されませんが、KEY_VERSION_2KEY_VERSION_3 は表示されます。KEY_VERSION_1 を省略すると、鍵セットから削除されます。

gcloud edge-cache keysets update KEYSET_NAME \
    --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_2'
    --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_3'

次のように置き換えます。

  • KEYSET_NAME: 鍵セットの名前
  • PROJECT_NUMBER: プロジェクトの番号
  • SECRET_ID: 更新するシークレットの ID
  • KEY_VERSION: 鍵のバージョン

テキスト エディタ

  1. 鍵セットを YAML ファイルにエクスポートします。gcloud edge-cache keysets export コマンドを使用します。

    gcloud edge-cache keysets export KEYSET_NAME \
        --destination=FILENAME.yaml
    

    次のように置き換えます。

    • KEYSET_NAME: 鍵セットの名前(例: prod-vod-keyset
    • FILENAME: YAML ファイル名
  2. エクスポートされた鍵セット構成ファイルを編集して、秘密鍵を削除します。次の例は、KEY_VERSION_1 で終わる最も古い秘密鍵を削除する方法を示しています。

    name: projects/my-project/locations/global/edgeCacheKeysets/prod-vod-keyset
    validationSharedKeys:
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_1"
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_2"
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_3"
    

    次のように置き換えます。

    • PROJECT_NUMBER: プロジェクトの番号
    • SECRET_ID: 更新するシークレットの ID
    • KEY_VERSION: 鍵のバージョン

    編集後のファイルは次のようになります。

    name: projects/my-project/locations/global/edgeCacheKeysets/prod-vod-keyset
    validationSharedKeys:
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_2"
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_3"
    
  3. 編集したキーセットをインポートします。gcloud edge-cache keysets import コマンドを実行します。

    gcloud edge-cache keysets import KEYSET_NAME \
        --source=FILENAME.yaml
    

シークレットを追加

コンソール

  1. Google Cloud コンソールで、[Media CDN] ページに移動します。

    Media CDN に移動

  2. [鍵セット] タブをクリックします。

  3. シークレットを追加する鍵セットを選択し、[編集] をクリックします。

  4. シークレットを削除するには、[鍵] > [検証共有鍵] セクションで、[シークレット] をクリックします。次に、リストからシークレットを選択し、リソース ID を指定して手動でシークレットを入力するか、新しいシークレットを作成して選択します。

  5. リストからシークレット バージョンを選択するか、新しいシークレット バージョンを作成して選択します。

  6. [キーセットを更新] をクリックします。

gcloud

鍵セットに秘密鍵を追加するには、gcloud edge-cache keysets update コマンドを使用します。所有している鍵セットと、追加する鍵セットを指定します。

次の例では、KEY_VERSION_1 がすでに削除されており、KEY_VERSION_4 は追加中の鍵セットです。KEY_VERSION_2KEY_VERSION_3 に加えて KEY_VERSION_4 がリストされていると、鍵セットに追加されます。

gcloud edge-cache keysets update KEYSET_NAME \
    --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_2'
    --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_3'
    --validation-shared-key='secret_version=projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_4'

次のように置き換えます。

  • KEYSET_NAME: 鍵セットの名前
  • PROJECT_NUMBER: プロジェクトの番号
  • SECRET_ID: 更新するシークレットの ID
  • KEY_VERSION: 鍵のバージョン

テキスト エディタ

  1. 鍵セットを YAML ファイルにエクスポートします。gcloud edge-cache keysets export コマンドを使用します。

    gcloud edge-cache keysets export KEYSET_NAME \
        --destination=FILENAME.yaml
    

    次のように置き換えます。

    • KEYSET_NAME: 鍵セットの名前
    • FILENAME: YAML ファイル名
  2. エクスポートされた鍵セット構成ファイルに、新しい鍵バージョンを含む新しい secretVersion 行を追加します。次に例を示します。

    name: projects/my-project/locations/global/edgeCacheKeysets/prod-vod-keyset
    validationSharedKeys:
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_2"
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_3"
        - secretVersion: "projects/PROJECT_NUMBER/secrets/SECRET_ID/versions/KEY_VERSION_4"
    
  3. 編集したキーセットをインポートします。gcloud edge-cache keysets import コマンドを実行します。

    gcloud edge-cache keysets import KEYSET_NAME \
        --source=FILENAME.yaml