Cloud KMS と Cloud HSM を使用して Key Access Justifications を構成する
このページでは、Assured Workloads の日本データ境界用に Cloud KMS または Cloud HSM を使用して Key Access Justifications を構成する方法について説明します。
日本リージョン用の新しい Assured Workloads フォルダを作成する手順で、暗号鍵用の新しいプロジェクトとキーリングを作成できます。このキーリングには Cloud KMS 鍵と Cloud HSM 鍵を追加できます。また、各鍵へのアクセスを制御する Key Access Justifications ポリシーを構成することもできます。
始める前に
- Cloud KMS 鍵と Cloud HSM 鍵で Key Access Justifications を使用する機能は、Assured Workloads の日本データ境界でのみ使用できます。
- Key Access Justifications ポリシーと Cloud KMS 鍵および Cloud HSM 鍵自体の両方を作成および管理するために必要な Identity and Access Management(IAM)ロールのいずれかが管理者から付与されていることを確認します。
必要な IAM 権限
Cloud KMS 鍵と Cloud HSM 鍵、およびそれらの Key Access Justifications ポリシーを作成および管理するために必要な権限を取得するには、キーリングを含むプロジェクトに対する Cloud KMS 管理者 (roles/cloudkms.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、Cloud KMS 鍵と Cloud HSM 鍵、およびそれらの Key Access Justifications ポリシーを作成および管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Cloud KMS 鍵と Cloud HSM 鍵、およびそれらの Key Access Justifications ポリシーを作成および管理するには、次の権限が必要です。
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.update
-
cloudkms.cryptoKeys.get
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Key Access Justifications を使用して鍵を構成する
Cloud KMS 鍵または Cloud HSM 鍵を使用して Key Access Justifications を構成するには、鍵を作成するときに鍵アクセス ポリシーをパラメータとして含めるか、鍵の作成後にポリシーを使用して鍵を更新します。
新しい鍵とポリシーを作成する
コンソール
Google Cloud コンソールで、[鍵管理] ページに移動します。
鍵を作成するキーリングの名前をクリックします。
[鍵を作成] をクリックします。
[鍵名] に鍵の名前を入力します。
[保護レベル] で、[ソフトウェア] または [HSM] を選択します。
必要に応じて設定を選択し続けます。
[その他の設定] で、[Key Access Justification ポリシーを設定] を選択し、[許可される正当性の理由] を選択します。
[正当化理由] で、[お客様が自発的に行ったアクセス]、[Google が自発的に行ったシステム オペレーション]、および許可するその他の理由コードを選択します。お客様が自発的に行ったアクセスとGoogle が自発的に行ったシステム オペレーションは、どちらも正常な機能に不可欠です。
[作成] をクリックします。
REST
cryptoKeys.create
メソッドを使用して、新しい鍵とポリシーを作成します。
POST https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME
このリクエストでは、プレースホルダ値を次のように置き換えます。
- PROJECT_ID: 鍵を追加するキーリングを含むプロジェクトのプロジェクト ID(例:
919698201234
)。 - LOCATION: キーリングのロケーション(例:
asia-northeast1
)。 - KEY_RING: Assured Workloads フォルダの鍵管理プロジェクトとキーリングの作成時に指定したキーリングの名前。
- KEY_NAME: 作成する HSM 鍵の名前(例:
my-hsm-key
)。
リクエストの本文:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
リクエスト本文で、次のプレースホルダ値を置き換えます。
- PURPOSE: 鍵の目的。さまざまな鍵の目的のリストについては、鍵の目的をご覧ください(例:
ENCRYPT_DECRYPT
)。 - PROTECTION_LEVEL: 鍵の保護レベル(例:
SOFTWARE
、HSM
)。 - ALGORITHM: 使用する暗号アルゴリズム。使用可能なアルゴリズムのリストについては、Cloud KMS アルゴリズムをご覧ください(例:
GOOGLE_SYMMETRIC_ENCRYPTION
)。 - ALLOWED_ACCESS_REASONS: 暗号鍵にアクセスするための 0 個以上の許可された正当化コードを定義する Key Access Justifications ポリシー(例:
["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"]
)。
次のリクエストとリクエスト本文の例では、いくつかの理由によりアクセスの正当化のみが許可される Cloud HSM 鍵を作成します。
POST https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys?crypto_key_id=my-hsm-key
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }
既存の鍵のポリシーを更新する
コンソール
Google Cloud コンソールで、[鍵管理] ページに移動します。
鍵を作成したキーリングの名前をクリックします。
Key Access Justifications ポリシーを更新する鍵の名前をクリックします。
[Key Access Justifications ポリシーを編集] をクリックします。
次のいずれかを行います。
鍵の Key Access Justifications ポリシーを無効にするには、[Key Access Justifications ポリシーを設定する] チェックボックスをオフにします。
許可される正当化理由を変更するには、[正当化理由] ボックスをクリックし、必要に応じて理由コードを選択または選択解除します。お客様が自発的に行ったアクセスとGoogle が自発的に行ったシステム オペレーションは、どちらも正常な機能に不可欠です。
すべての理由コードを拒否するには、[すべての理由コードを拒否する(非推奨)] を選択します。これにより、キーが有効になっていて、リクエスト元に必要な権限がある場合でも、キーが使用されなくなります。
[保存] をクリックします。
REST
cryptoKeys.patch
メソッドを使用して、Cloud KMS の既存の鍵を更新します。
PATCH https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME?update_mask=keyAccessJustificationsPolicy
このリクエストでは、プレースホルダ値を次のように置き換えます。
- PROJECT_ID: キーのキーリングを含むプロジェクトのプロジェクト ID(例:
919698201234
)。 - LOCATION: キーリングのロケーション(例:
asia-northeast1
)。 - KEY_RING: Assured Workloads フォルダの鍵管理プロジェクトとキーリングの作成時に指定したキーリングの名前。
- KEY_NAME: 更新する鍵の名前。
リクエストの本文:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
リクエスト本文で、次のプレースホルダ値を置き換えます。
- PURPOSE: 鍵の目的。さまざまな鍵の目的のリストについては、鍵の目的をご覧ください(例:
ENCRYPT_DECRYPT
)。 - PROTECTION_LEVEL: 鍵の保護レベル(例:
SOFTWARE
、HSM
)。 - ALGORITHM: 使用する暗号アルゴリズム。使用可能なアルゴリズムのリストについては、Cloud KMS アルゴリズムをご覧ください(例:
GOOGLE_SYMMETRIC_ENCRYPTION
)。 - ALLOWED_ACCESS_REASONS: 暗号鍵にアクセスするための 0 個以上の許可された正当化コードを定義する Key Access Justifications ポリシー(例:
["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"]
)。
次のリクエストとリクエスト本文の例では、いくつかの理由によりアクセスの正当化のみが許可されます。
PATCH https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys/my-hsm-key?keyAccessJustificationsPolicy
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }
鍵の Key Access Justifications ポリシーを取得する
REST
cryptoKeys.get
メソッドを使用して、Cloud KMS の既存の鍵に関するメタデータを取得します。
GET https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
リクエスト パラメータで、次のプレースホルダ値を独自の値に置き換えます。
- PROJECT_ID: 鍵のキーリングを含むプロジェクト ID(例:
919698201234
)。 - LOCATION: キーリングのロケーション(例:
asia-northeast1
)。 - KEY_RING: Assured Workloads フォルダの鍵管理プロジェクトとキーリングの作成時に指定したキーリングの名前(例:
my-key-ring
)。 - KEY_NAME: 取得する鍵の名前。
次のリクエスト例では、Cloud KMS の鍵に関するメタデータを取得します。
GET https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys/my-hsm-key
レスポンスの本文には、keyAccessJustificationsPolicy
を含む鍵に関するメタデータが含まれます。次に例を示します。
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }
次のステップ
- デフォルトの Key Access Justification ポリシーを設定することもできます(プレビュー)。