이 페이지에서는 Cloud KMS의 각 리소스 유형을 설명합니다. 리소스 계층 구조에 대해 자세히 알아보세요.
키
Cloud KMS 키는 하나 이상의 키 버전과 키의 메타데이터를 포함하는 명명된 객체입니다. 키는 특정 위치에 연결된 정확히 하나의 키링에 있습니다.
Identity and Access Management(IAM) 권한 및 역할을 사용하여 키에 대한 액세스를 허용하거나 거부할 수 있습니다. 키 버전에 대한 액세스는 관리할 수 없습니다.
키를 사용 중지하거나 폐기하면 각 키 버전도 사용 중지되거나 폐기됩니다.
다음 섹션에서는 키의 속성을 설명합니다.
컨텍스트에 따라 키의 속성은 다른 형식으로 표시됩니다.
- Google Cloud CLI 또는 Cloud Key Management Service API를 사용하면 이 속성이
SOFTWARE
와 같이 대문자 문자열로 표시됩니다. - Google Cloud Console을 사용하는 경우 속성은 Software와 같은 이니셜 대소문자의 문자열로 표시됩니다.
다음 섹션에는 각 형식이 적절한 경우에 표시되어 있습니다.
유형
키 유형은 키가 대칭 또는 비대칭 암호화 작업에 사용되는지 여부를 결정합니다.
대칭 암호화 또는 서명에서 데이터를 암호화 및 복호화하거나 서명하고 서명을 확인하는 데 동일한 키가 사용됩니다.
비대칭 암호화 또는 서명에서 키는 공개 키와 비공개 키로 구성됩니다. 해당하는 공개 키가 있는 비공개 키를 키 쌍이라고 합니다.
- 비공개 키는 민감한 정보이며 키의 구성된 용도에 따라 데이터를 복호화하거나 서명해야 합니다.
- 공개 키는 민감한 것으로 간주되지 않으며 키의 구성된 용도에 따라 데이터를 암호화하거나 서명을 확인해야 합니다.
키 유형은 키 용도의 한 구성요소이며 키를 만든 후에는 변경할 수 없습니다.
목적
키의 용도는 키를 사용할 수 있는 암호화 작업의 종류를 나타냅니다(예: 대칭 암호화/복호화 또는 비대칭 서명). 키를 만들 때 사용자가 용도를 선택하며 키의 모든 버전은 용도가 동일합니다. 키를 만든 후에는 키의 용도를 변경할 수 없습니다. 키 용도에 대한 자세한 내용은 키 용도를 참조하세요.
보호 수준
키의 보호 수준에 따라 키의 스토리지 저장 환경이 결정됩니다. 보호 수준은 다음 중 하나입니다.
- 소프트웨어(Google Cloud CLI 및 Cloud Key Management Service API의
SOFTWARE
) - HSM
- 외부(Google Cloud CLI 및 Cloud Key Management Service API의
EXTERNAL
) - 외부 VPC(Google Cloud CLI 및 Cloud Key Management Service API의
EXTERNAL_VPC
)
키가 생성된 후에는 키의 보호 수준을 변경할 수 없습니다.
기본 버전
키에는 여러 키 버전이 한 번에 활성화되고 사용 설정될 수 있습니다. 대칭 암호화 키에는 키 버전을 지정하지 않는 경우 기본적으로 데이터를 암호화하는 데 사용되는 키 버전인 기본 키 버전이 있습니다.
비대칭 키는 기본 버전이 없습니다. 키를 사용할 때 버전을 지정해야 합니다.
대칭 키와 비대칭 키의 경우 사용 설정된 키 버전을 사용하여 데이터를 암호화 및 복호화하거나 서명하고 서명을 검증할 수 있습니다.
키 버전
키의 각 버전에는 암호화 또는 서명에 사용되는 키 자료가 포함됩니다. 각 버전에는 1
부터 시작하는 버전 번호가 할당됩니다. 키를 순환하면 새 키 버전이 생성됩니다. 키 순환에 대해 자세히 알아보세요.
데이터를 복호화하거나 서명을 확인하려면 데이터를 암호화하거나 서명하는 데 사용된 것과 동일한 키 버전을 사용해야 합니다. 키 버전의 리소스 ID를 찾으려면 키의 리소스 ID 검색을 참조하세요.
다른 버전에 영향을 미치지 않고 개별 키 버전을 사용 중지하거나 폐기할 수 있습니다. 지정된 키의 모든 키 버전을 사용 중지하거나 폐기할 수도 있습니다.
키에 적용되는 권한과 관계없이 키 버전에 대한 액세스를 제어할 수 없습니다. 키에 액세스 권한을 부여하면 해당 키의 사용 설정된 모든 버전에도 액세스 권한이 부여됩니다.
보안상의 이유로 Google Cloud 주 구성원은 키 버전으로 표시되는 원시 암호화 키 자료를 보거나 내보낼 수 없습니다. 대신 Cloud KMS가 사용자를 대신하여 키 자료에 액세스합니다.
다음 섹션에서는 키 버전의 속성을 설명합니다.
상태
각 키 버전에는 상태를 알려주는 상태가 있습니다. 일반적으로 키 상태는 다음 중 하나입니다.
- 사용 설정됨
- 사용 중지됨
- 폐기 예약됨
- 폐기됨
키 버전은 사용 설정되었을 때만 사용할 수 있습니다. 폐기되지 않은 상태의 키 버전에서는 비용이 발생합니다. 키 버전 상태 및 버전 간 전환 방법에 대한 자세한 내용은 키 버전 상태를 참조하세요.
알고리즘
키 버전의 알고리즘은 키 자료가 생성되는 방식과 암호화 작업에 필요한 매개변수를 결정합니다. 대칭 키와 비대칭 키는 서로 다른 알고리즘을 사용합니다. 암호화와 서명은 서로 다른 알고리즘을 사용합니다.
새 키 버전을 만들 때 알고리즘을 지정하지 않으면 이전 버전의 알고리즘이 사용됩니다.
알고리즘과 관계없이 Cloud KMS는 확률적 암호화를 사용하므로 동일한 키 버전으로 동일한 일반 텍스트를 두 번 암호화하면 동일한 암호문을 반환하지 않습니다.
키링
키링은 특정 Google Cloud 위치의 키를 구성하고 키 그룹의 액세스 제어를 관리할 수 있게 해줍니다. 키링 이름은 Google Cloud 프로젝트 전체에서 고유할 필요는 없지만 지정된 위치 내에서 고유해야 합니다. 생성 후에는 키링을 삭제할 수 없습니다. 키링에 대해서는 비용이 발생하지 않습니다.
키 핸들
키 핸들은 Autokey를 사용하여 CMEK를 위한 새 Cloud KMS 키를 만들기 위해 업무 분리를 안전하게 수행할 수 있게 해주는 Cloud KMS 리소스입니다. 리소스 프로젝트에 키 핸들을 만들면 주문형 CMEK 설정을 위해 키 프로젝트에서 Cloud KMS 키 생성이 트리거됩니다.
키 핸들에는 생성된 Cloud KMS 키에 대한 참조가 포함됩니다. 키 핸들에서 Autokey로 생성된 키의 Cloud KMS 리소스 ID를 검색할 수 있습니다. Terraform과 같은 코드형 인프라 도구는 키 핸들과 함께 작동하여 승격된 권한 없이 CMEK로 보호되는 리소스를 관리할 수 있습니다.
키 핸들은 Google Cloud 콘솔에 표시되지 않지만 REST API 또는 Terraform에서 Autokey를 사용하려면 키 핸들을 사용해야 합니다. 키 핸들 사용에 대한 자세한 내용은 Cloud KMS Autokey를 사용하여 보호되는 리소스 만들기를 참조하세요.
Autokey 구성
Autokey 구성은 폴더에 Autokey가 사용 설정되었는지 여부를 정의하는 폴더 수준 리소스입니다. 또한 Autokey 구성은 Cloud KMS Autokey에서 해당 폴더의 리소스를 보호하기 위해 만든 키에 사용되는 키 프로젝트를 정의합니다. Autokey를 사용 설정하는 경우 리소스 폴더에서 Autokey 구성을 만들거나 업데이트합니다. Autokey 구성 사용에 대한 자세한 내용은 Cloud KMS Autokey 사용 설정을 참조하세요.
EKM 연결
EKM 연결은 특정 Google Cloud 위치에서 온프레미스 EKM에 대해 VPC 연결을 구성하는 Cloud KMS 리소스입니다. EKM 연결은 VPC 네트워크를 통해 외부 키 관리자에 연결하고 키를 사용할 수 있게 해줍니다. 생성 후에는 EKM 연결을 삭제할 수 없습니다. EKM 연결에 대해서는 비용이 발생하지 않습니다.
리소스 ID 검색
일부 API 호출 및 gcloud CLI를 사용하려면 정규화된 CryptoKeyVersion 이름을 표현하는 문자열인 리소스 ID를 사용하여 키링, 키 또는 키 버전을 참조해야 할 수 있습니다. 리소스 ID는 계층적이며 파일 시스템 경로와 유사합니다. 키의 리소스 ID에는 키링 및 위치 정보도 포함되어 있습니다.
객체 | 리소스 ID 형식 |
---|---|
키링 | projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING |
키 | projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME |
키 버전 | projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION |
키 핸들 | projects/RESOURCE_PROJECT_ID/locations/LOCATION/keyHandles/KEY_HANDLE |
EKM 연결 | projects/PROJECT_ID/locations/LOCATION/ekmConnections/EKM_CONNECTION |
Autokey 구성 | folders/FOLDER_NUMBER/autopilotConfig |
자세한 내용은 Cloud KMS 리소스 ID 가져오기를 참조하세요.
리소스 구성
Google Cloud 프로젝트에서 리소스를 구성하는 방법을 계획하는 경우 비즈니스 규칙 및 액세스 관리 방법을 고려하세요. 단일 키, 키링의 모든 키 또는 프로젝트의 모든 키에 대한 액세스 권한을 부여할 수 있습니다. 일반적으로 사용되는 조직 패턴은 다음과 같습니다.
prod
,test
,develop
등의 환경- 작업 영역(예:
payroll
,insurance_claims
) - 데이터 민감도 또는 특성(예:
unrestricted
,restricted
,confidential
,top-secret
)
리소스 수명 주기
키링, 키, 키 버전은 삭제할 수 없습니다. 이렇게 하면 키 버전의 리소스 식별자가 고유성을 유지하며 폐기되지 않는 한 항상 해당 키 버전의 원본 키 자료를 가리킵니다. 키링, 사용 설정 또는 중지된 키, 사용 설정, 중지 또는 폐기된 키 버전을 무제한으로 저장할 수 있습니다. 자세한 내용은 가격 책정 및 할당량을 참조하세요.
키 버전을 폐기하거나 복원하는 방법은 키 버전 폐기 및 복원을 참조하세요.
Google Cloud 프로젝트의 종료를 예약하면 프로젝트를 복원하는 단계를 수행하여 프로젝트를 복구하지 않는 한 Cloud KMS 리소스를 포함한 프로젝트의 리소스에 액세스할 수 없습니다.