承認済みリクエストの署名を検証する
承認されたアクセス承認リクエストは、非対称暗号鍵で署名され、承認が検証されます。承認されたリクエストは、Google 管理の鍵またはお客様指定の Cloud KMS 鍵で署名できます。
署名を検証すると、シリアル化された承認済みリクエストのバイト文字列が有効であることを確認できます。承認の内容の検証を完了するには、メッセージをシリアル化解除し、シリアル化解除されたメッセージを承認されたリクエストの内容と比較する必要があります。
始める前に
リソースの Access Approval サービス アカウントに、承認済みリクエストの署名を検証するために必要な権限を付与するには、リソースの Access Approval サービス アカウントに、鍵、キーリング、または鍵プロジェクトに対する Cloud KMS 暗号鍵の署名者/検証者 (roles/cloudkms.signerVerifier
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
管理者は、カスタムロールや他の事前定義ロールを使用して、リソースのアクセス承認サービス アカウントに必要な権限を付与することもできます。
Google が管理する鍵を使用して署名されたリクエストを検証する
Google Cloud コンソールで、[アクセス承認] ページに移動します。
検証する承認済みの Access Approval リクエストを見つけて選択します。[リクエストの詳細] ページが開きます。
[Google 管理の公開鍵] で content_copy [コピー] をクリックします。
Cloud Shell を開き、公開鍵を
public_key
という名前の新しいファイルとして保存します。echo GOOGLE_MANAGED_PUBLIC_KEY > ./public_key
GOOGLE_MANAGED_PUBLIC_KEY
は、[Google 管理の公開鍵] フィールドの内容に置き換えます。Google Cloud コンソールの [リクエストの詳細] ページの [署名] で、content_copy [コピー] をクリックします。
Cloud Shell を開き、署名を
signature.txt
という名前の新しいファイルとして保存します。echo SIGNATURE > ./signature.txt
SIGNATURE
は、[署名] フィールドの内容に置き換えます。base64
コマンドを使用して署名をデコードし、結果をdecoded_signature
として保存します。base64 ./signature.txt -d > ./decoded_signature
Google Cloud コンソールの [リクエストの詳細] ページの [シリアル化された承認リクエスト] で、content_copy [コピー] をクリックします。
Cloud Shell を開き、シリアル化された承認リクエストを
serialized_approval_request.txt
という名前の新しいファイルとして保存します。echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
SERIALIZED_APPROVAL_REQUEST
は、[Serialized Approval Request] フィールドの内容に置き換えます。シリアル化された承認リクエストをデコードし、結果を
decoded_serialized_approval_request
として保存します。base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
openssl
を使用して署名を検証します。openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
署名が有効な場合、出力は
Verified OK
になります。これにより、シリアル化された承認リクエストが有効であることが確認されます。
お客様指定の鍵を使用して署名されたリクエストを検証する
Google Cloud コンソールで、[アクセス承認] ページに移動します。
検証する承認済みの Access Approval リクエストを見つけて選択します。[リクエストの詳細] ページが開きます。
Google Cloud コンソールの [リクエストの詳細] ページの [署名] で、content_copy [コピー] をクリックします。
Cloud Shell を開き、署名を
signature.txt
という名前の新しいファイルとして保存します。echo SIGNATURE > ./signature.txt
SIGNATURE
は、[署名] フィールドの内容に置き換えます。署名をデコードして、結果を
decoded_signature
として保存します。base64 ./signature.txt -d > ./decoded_signature
Google Cloud コンソールの [リクエストの詳細] ページの [シリアル化された承認リクエスト] で、content_copy [コピー] をクリックします。
Cloud Shell を開き、シリアル化された承認リクエストを
serialized_approval_request.txt
という名前の新しいファイルとして保存します。echo SERIALIZED_APPROVAL_REQUEST > ./serialized_approval_request.txt
SERIALIZED_APPROVAL_REQUEST
は、[Serialized Approval Request] フィールドの内容に置き換えます。シリアル化された承認リクエストをデコードし、結果を
decoded_serialized_approval_request
として保存します。base64 ./serialized_approval_request.txt -d > ./decoded_serialized_approval_request
[お客様が管理する鍵] で、鍵のリソース ID をメモします。
前の手順で特定した鍵の公開鍵を取得します。ダウンロードした公開鍵を PEM 形式で
./public_key
として保存します。openssl
を使用して署名を検証します。openssl dgst \ -sha256 \ -verify ./public_key \ -signature ./decoded_signature \ ./decoded_serialized_approval_request
署名が有効な場合、出力は
Verified OK
になります。これにより、シリアル化された承認リクエストが有効であることが確認されます。