Cloud HSM を使用して Key Access Justifications を構成する
このページでは、Assured Workloads の日本リージョン コントロール パッケージ用に Cloud HSM を使用して Key Access Justifications を構成する方法について説明します。
日本リージョン用の新しい Assured Workloads フォルダを作成する手順では、新しいプロジェクトと暗号鍵用のキーリングを作成できます。Cloud HSM 鍵をこのキーリングに追加できます。また、Key Access Justifications ポリシーを構成して各鍵へのアクセスを制御することもできます。
始める前に
- Cloud HSM 鍵で Key Access Justifications を使用する機能は、Assured Workloads の日本リージョン コントロール パッケージでのみ使用できます。
- Key Access Justifications ポリシーと Cloud HSM 鍵自体の両方を作成および管理するために必要な Identity and Access Management(IAM)ロールのいずれかが管理者から付与されていることを確認します。
必要な IAM 権限
Cloud HSM 鍵とその Key Access Justifications ポリシーを作成および管理するために必要な権限を取得するには、キーリングを含むプロジェクトに対する Cloud KMS 管理者(roles/cloudkms.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
この事前定義ロールには、Cloud HSM 鍵とその Key Access Justifications ポリシーを作成および管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Cloud HSM 鍵とその Key Access Justifications ポリシーを作成および管理するには、次の権限が必要です。
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.update
-
cloudkms.cryptoKeys.get
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Key Access Justifications を使用して Cloud HSM 鍵を構成する
Cloud HSM 鍵を使用して Key Access Justifications を構成するには、鍵を作成するときに鍵アクセス ポリシーをパラメータとして含めるか、鍵の作成後にポリシーを使用して鍵を更新します。
新しい鍵とポリシーを作成する
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: キーリングのロケーション(例:
us-west1
)。 - KEY_RING: Assured Workloads フォルダの鍵管理プロジェクトとキーリングの作成時に指定したキーリングの名前(例:
my-key-ring
)。 - KEY_NAME: 作成する HSM 鍵の名前(例:
my-hsm-key
)。
リクエストの本文:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
リクエスト本文で、次のプレースホルダ値を置き換えます。
- PURPOSE: 鍵の目的。さまざまな鍵の目的のリストについては、鍵の目的をご覧ください(例:
ENCRYPT_DECRYPT
)。 - ALGORITHM: 使用する暗号アルゴリズム。使用可能なアルゴリズムのリストについては、Cloud KMS アルゴリズムをご覧ください(例:
GOOGLE_SYMMETRIC_ENCRYPTION
)。 - ALLOWED_ACCESS_REASONS: 暗号鍵にアクセスするための 0 個以上の許可された正当化コードを定義する Key Access Justifications ポリシー(例:
CUSTOMER_INITIATED_ACCESS
)。
次のリクエストとリクエスト本文の例では、いくつかの理由によりアクセスの正当化のみが許可されます。
POST https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/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" ] } }
既存の鍵のポリシーを更新する
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: キーリングのロケーション(例:
us-west1
)。 - KEY_RING: Assured Workloads フォルダの鍵管理プロジェクトとキーリングの作成時に指定したキーリングの名前(例:
my-key-ring
)。 - KEY_NAME: 更新する HSM 鍵の名前(例:
my-hsm-key
)。
リクエストの本文:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
リクエスト本文で、次のプレースホルダ値を置き換えます。
- PURPOSE: 鍵の目的。さまざまな鍵の目的のリストについては、鍵の目的をご覧ください(例:
ENCRYPT_DECRYPT
)。 - ALGORITHM: 使用する暗号アルゴリズム。使用可能なアルゴリズムのリストについては、Cloud KMS アルゴリズムをご覧ください(例:
GOOGLE_SYMMETRIC_ENCRYPTION
)。 - ALLOWED_ACCESS_REASONS: 暗号鍵にアクセスするための 0 個以上の許可された正当化コードを定義する Key Access Justifications ポリシー(例:
CUSTOMER_INITIATED_ACCESS
)。
次のリクエストとリクエスト本文の例では、いくつかの理由によりアクセスの正当化のみが許可されます。
PATCH https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/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: キーリングのロケーション(例:
us-west1
)。 - KEY_RING: Assured Workloads フォルダの鍵管理プロジェクトとキーリングの作成時に指定したキーリングの名前(例:
my-key-ring
)。 - KEY_NAME: 取得する HSM 鍵の名前(例:
my-hsm-key
)。
次のリクエストの例では、Cloud KMS の鍵に関するメタデータを取得します。
GET https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/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" ] } }