サーバーの暗号鍵を設定する

暗号鍵は、サーバー パスワードを暗号化するように設定できます。鍵は、Cloud Key Management Service(Cloud KMS)を使用して管理できる顧客管理の暗号鍵(CMEK)です。新しいサーバーをプロビジョニングするときか、既存のサーバーを再作成するときに設定できます。暗号鍵は複数のサーバーで使用できます。

暗号鍵を使用するかどうかは、ユーザーが選択できます。しかし、一旦暗号鍵を設定すると、それを使用する必要があります。この設定を変更することはできません。ただし、鍵やそのバージョンは変更できます。

この機能は、Bare Metal Solution でサポートされている Linux OS でのみ利用できます。

準備

  1. Cloud KMS を使用して暗号鍵を作成します。

    暗号鍵の作成手順は次のとおりです。

    1. 鍵を作成するプロジェクトで、Cloud KMS API を有効にします

      これはプロジェクトごとに 1 回だけ行います。

    2. Bare Metal Solution サービス アカウントに次のロールを割り当てます。これはプロジェクトごとに 1 回だけ行います。

      • roles/cloudkms.viewer: CryptoKeyVersion が使用可能であることを確認します。
      • roles/cloudkms.publicKeyViewer: 公開鍵を取得します。

      ロールを付与する方法については、リソースに対するロールの付与をご覧ください。

      これらのロールを割り当てるには、gcloud projects add-iam-policy-binding コマンドを使用します。

      gcloud projects add-iam-policy-binding KMS_PROJECT_ID \
      --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bms.iam.gserviceaccount.com \
      --role roles/cloudkms.publicKeyViewer
      
      gcloud projects add-iam-policy-binding KMS_PROJECT_ID \
      --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bms.iam.gserviceaccount.com \
      --role roles/cloudkms.viewer
      

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

      • KMS_PROJECT_ID: Cloud KMS 鍵を含むプロジェクト
      • PROJECT_NUMBER: Bare Metal Solution サーバーが含まれるプロジェクト
    3. 非対称復号鍵を作成します

      鍵とバージョンは必要に応じていくつでも作成できます。

サーバーのプロビジョニング中に暗号鍵を設定する

新しい Bare Metal Solution サーバーの暗号鍵は、Google Cloud コンソールの入力フォームでプロビジョニングしながら設定できます。

サーバーのプロビジョニング中に暗号鍵を設定するには、Google Cloud コンソールの入力フォームを使用して選択内容を入力するをご覧ください。

サーバーの再イメージング中に暗号鍵を設定する

サーバーを再イメージングするときに暗号鍵を設定するには、サーバーの OS を変更するをご覧ください。

サーバーの暗号鍵とパスワードを表示する

サーバーの暗号鍵とパスワードを表示する手順は次のとおりです。

コンソール

  1. [サーバー] ページに移動します。

    [サーバー] に移動

  2. サーバー名をクリックします。

    [サーバーの詳細] ページの [パスワード暗号鍵] フィールドに、暗号鍵を表示します。

  3. ユーザー アカウントと暗号化された対応するパスワードを表示するには、[ユーザー アカウント] セクションに移動します。

gcloud

gcloud alpha bms instances auth-info コマンドを使用します。

gcloud alpha bms instances auth-info SERVER_NAME --project=PROJECT_ID --region=REGION

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

  • SERVER_NAME: Bare Metal Solution サーバーの名前
  • PROJECT_ID: プロジェクトの ID
  • REGION: Bare Metal Solution サーバーのリージョン

パスワードを復号する

未加工のパスワードを取得する手順は次のとおりです。

  1. 暗号テキストを取得します。gcloud alpha bms instances auth-info コマンドを使用します。

    gcloud alpha bms instances auth-info SERVER_NAME \
    --project=PROJECT_ID \
    --region=REGION \
    --format='value(userAccounts.USERNAME.ENCRYPTED_PASSWORD_FILE)' | tr -d ' \n' | base64 -d > CIPHERTEXT_FILE
    

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

    • SERVER_NAME: Bare Metal Solution サーバーの名前
    • PROJECT_ID: Bare Metal Solution プロジェクトの ID
    • REGION: Bare Metal Solution サーバーのロケーション
    • USERNAME: 復号するパスワードに関連付けられているアカウントのユーザー名。値は root または customeradmin のいずれかです。
    • ENCRYPTED_PASSWORD_FILE: 暗号化されたパスワードを保存したファイル。パスワードをコピーした後、パスワードの形式に関する問題を回避するため、スペースと改行('\n')文字は削除します。
    • CIPHERTEXT_FILE: 暗号テキスト ファイルの名前

    例:

    gcloud alpha bms instances auth-info my-instance \
    --region=europe-west3 \
    --project=project-testing \
    --format='value(userAccounts.customeradmin.encryptedPassword)' | tr -d ' \n' | base64 -d > ciphertext
    

    Google Cloud コンソールからコピーしたパスワードから暗号テキストを取得するには、次のコマンドを使用します。

    cat ENCRYPTED_PASSWORD_FILE | tr -d ' \n' | base64 -d > CIPHERTEXT_FILE
    

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

    • ENCRYPTED_PASSWORD_FILE: 暗号化されたパスワードを保存したファイル。パスワードをコピーした後、パスワードの形式に関する問題を回避するため、スペースと改行('\n')文字は削除します。
    • CIPHERTEXT_FILE: 暗号テキスト ファイルの名前

    例:

    cat encrypted_password | tr -d ' \n' | base64 -d > ciphertext
    
  2. パスワードを復号します。 データを復号するの手順に沿って操作します。

次のステップ