Cloud HSM으로 키 액세스 근거 구성
이 페이지에서는 Cloud HSM을 사용하여 Assured Workloads의 일본 리전 제어 패키지의 키 액세스 근거를 구성하는 방법을 설명합니다.
일본 리전의 새 Assured Workloads 폴더를 만드는 단계 중에 새 프로젝트와 암호화 키의 키링을 만들 수 있습니다. Cloud HSM 키 키를 이 키링에 추가할 수 있으며 키 액세스 근거 정책을 구성하여 각 키에 대한 액세스를 제어할 수도 있습니다.
시작하기 전에
- Cloud HSM 키로 키 액세스 근거를 사용하는 기능은 Assured Workloads의 일본 리전 제어 패키지에서만 사용 가능합니다.
- 관리자가 키 액세스 근거 정책과 Cloud HSM 키 자체를 만들고 관리하는 데 필요한 Identity and Access Management(IAM) 역할 중 하나를 부여했는지 확인합니다.
필수 IAM 권한
Cloud HSM 키와 키 액세스 근거 정책을 만들고 관리하는 데 필요한 권한을 얻으려면 관리자에게 키링이 포함된 프로젝트에 대한 Cloud KMS 관리자(roles/cloudkms.admin
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 Cloud HSM 키와 키 액세스 근거 정책을 만들고 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
Cloud HSM 키와 키 액세스 근거 정책을 만들고 관리하려면 다음 권한이 필요합니다.
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.update
-
cloudkms.cryptoKeys.get
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
키 액세스 근거로 Cloud HSM 키 구성
Cloud HSM 키로 키 액세스 근거를 구성하려면 키를 만들 때 키 액세스 정책을 매개변수로 포함하거나 키를 만든 후 정책으로 키를 업데이트하면 됩니다.
새 키 및 정책 만들기
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개 이상 정의하는 키 액세스 근거 정책(예:
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개 이상 정의하는 키 액세스 근거 정책(예:
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" ] } }
키의 키 액세스 근거 정책 가져오기
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" ] } }