サーバーの暗号鍵を設定する
暗号鍵は、サーバー パスワードを暗号化するように設定できます。鍵は、Cloud Key Management Service(Cloud KMS)を使用して管理できる顧客管理の暗号鍵(CMEK)です。新しいサーバーをプロビジョニングするときか、既存のサーバーを再作成するときに設定できます。暗号鍵は複数のサーバーで使用できます。
暗号鍵を使用するかどうかは、ユーザーが選択できます。しかし、一旦暗号鍵を設定すると、それを使用する必要があります。この設定を変更することはできません。ただし、鍵やそのバージョンは変更できます。
この機能は、Bare Metal Solution でサポートされている Linux OS でのみ利用できます。
準備
Cloud KMS を使用して暗号鍵を作成します。
暗号鍵の作成手順は次のとおりです。
鍵を作成するプロジェクトで、Cloud KMS API を有効にします。
これはプロジェクトごとに 1 回だけ行います。
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 サーバーが含まれるプロジェクト
-
鍵とバージョンは必要に応じていくつでも作成できます。
サーバーのプロビジョニング中に暗号鍵を設定する
新しい Bare Metal Solution サーバーの暗号鍵は、Google Cloud コンソールの入力フォームでプロビジョニングしながら設定できます。
サーバーのプロビジョニング中に暗号鍵を設定するには、Google Cloud コンソールの入力フォームを使用して選択内容を入力するをご覧ください。
サーバーの再イメージング中に暗号鍵を設定する
サーバーを再イメージングするときに暗号鍵を設定するには、サーバーの OS を変更するをご覧ください。
サーバーの暗号鍵とパスワードを表示する
サーバーの暗号鍵とパスワードを表示する手順は次のとおりです。
コンソール
[サーバー] ページに移動します。
サーバー名をクリックします。
[サーバーの詳細] ページの [パスワード暗号鍵] フィールドに、暗号鍵を表示します。
ユーザー アカウントと暗号化された対応するパスワードを表示するには、[ユーザー アカウント] セクションに移動します。
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 サーバーのリージョン
パスワードを復号する
未加工のパスワードを取得する手順は次のとおりです。
暗号テキストを取得します。
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
パスワードを復号します。 データを復号するの手順に沿って操作します。