이 페이지에서는 고객 관리 암호화 키(CMEK)를 사용하여 저장소에 저장된 콘텐츠를 암호화하는 방법을 설명합니다.
개요
기본적으로 Artifact Registry는 저장된 고객 콘텐츠를 암호화합니다. Artifact Registry는 사용자 측의 추가 작업 없이 자동으로 암호화를 처리합니다. 이 옵션을 Google 기본 암호화 라고 합니다.
암호화 키를 제어하려면 Artifact Registry를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키 (CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계 를 관리할 수 있습니다. Cloud KMS를 사용하면 감사 로그를 보고 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키 (KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.
CMEK로 리소스를 설정한 후 Artifact Registry 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키 (CMEK)를 참조하세요.
저장소를 만들 때 CMEK 키를 할당합니다. 기존 저장소의 암호화 메커니즘은 변경할 수 없습니다. CMEK로 암호화된 저장소가 있는 경우 암호화 메커니즘을 Google 소유 및 Google 관리 암호화 키를 사용하도록 변경하거나 암호화에 다른 Cloud KMS 키를 할당할 수 없습니다.
CMEK를 사용 설정하는 시기와 이유를 포함한 일반적인 CMEK에 대한 자세한 내용은 CMEK 개요를 참조하세요.
키 만들기 및 권한 부여
다음 안내에서는 저장소의 키를 만들고 이 키를 사용하여 저장소 데이터를 암호화 및 복호화할 수 있는 권한을 부여하는 방법을 설명합니다. 사용자는 Cloud KMS에서 직접 생성된 키 또는 Cloud 외부 키 관리자에서 사용할 수 있는 외부 관리 키를 사용할 수 있습니다.
키를 관리할 Google Cloud 프로젝트에서 다음 단계를 따르세요.
다음 옵션 중 하나를 사용하여 키링과 키를 만듭니다.
Artifact Registry 프로젝트에 저장소를 만들지 않은 경우 Artifact Registry 서비스 계정이 존재하지 않습니다. 서비스 계정을 만들려면 다음 명령어를 실행하세요.
gcloud beta services identity create --service=artifactregistry.googleapis.com --project=PROJECTPROJECT를 Artifact Registry를 실행 중인 프로젝트의 ID로 바꿉니다.
Artifact Registry 서비스 계정에 CryptoKey 암호화/복호화 IAM 역할(
roles/cloudkms.cryptoKeyEncrypterDecrypter)을 부여하세요. 만든 키에 대해 이 권한을 부여합니다.콘솔
암호화 키 페이지로 이동합니다.
만든 키를 선택합니다.
Artifact Registry 서비스 계정에 액세스 권한을 부여하세요.
- 정보 패널이 숨겨져 있는 경우 정보 패널 표시 를 클릭합니다.
- 액세스 권한 부여 를 클릭합니다.
- 새 주 구성원 필드에 Artifact Registry 서비스 계정을 추가합니다. 서비스 계정은 service-PROJECT-NUMBER@gcp-sa-artifactregistry.입니다. 여기서 PROJECT-NUMBER는 Artifact Registry가 실행 중인 Google Cloud 프로젝트의 프로젝트 번호입니다.
- 역할 선택에서 Cloud KMS > Cloud KMS CryptoKey 암호화/복호화를 선택합니다.
- 저장 을 클릭합니다.
저장소를 만들 계정에 대한 액세스 권한을 부여하려면 이전 단계를 반복하세요.
키 관리 페이지로 돌아가서 키를 다시 선택합니다.
정보 패널이 숨겨져 있는 경우 정보 패널 표시 를 클릭합니다. 역할/주 구성원 섹션에 역할이 표시됩니다.
gcloud
다음 명령어를 실행하여 Artifact Registry 서비스 계정에 액세스 권한을 부여하세요.
gcloud kms keys add-iam-policy-binding [--project=PROJECT] \ KEY --location LOCATION --keyring=KEYRING \ --member serviceAccount:service-PROJECT-NUMBER@gcp-sa-artifactregistry. \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter장소
- PROJECT는 키가 포함된 프로젝트의 ID입니다.
- KEY는 키 이름입니다.
- LOCATION은 키 위치입니다.
- KEYRING은 키링 이름입니다.
- PROJECT-NUMBER는 Artifact Registry를 실행 중인 Google Cloud 프로젝트의 프로젝트 번호입니다.
저장소를 만들 계정에 대한 액세스 권한을 부여하려면 이전 단계를 반복하세요.
이 명령어에 대한 상세 설명은 gcloud kms keys add-iam-policy-binding 문서를 참조하세요.
다음으로 저장소를 만들고 암호화에 사용할 키를 지정합니다.
액세스 권한 삭제
CMEK로 암호화된 저장소에 대한 액세스 권한을 삭제하는 방법에는 여러 가지가 있습니다.
- 다음 방법 중 하나를 사용하여 Cloud KMS CryptoKey 암호화/복호화 역할 을 Artifact Registry 서비스 계정에서 취소합니다.
- 고객 관리 암호화 키를 일시적으로 사용 중지합니다.
- CMEK 키 영구 삭제
키를 사용 중지하거나 폐기하기 전에 Artifact Registry 서비스 계정에서 권한을 취소하는 것이 좋습니다. 권한 변경사항은 몇 초 안에 효력이 발생하므로 키 사용 중지 또는 폐기가 미치는 영향을 관찰할 수 있습니다.
저장소의 암호화 키를 사용 중지하거나 폐기하면 아티팩트 데이터를 보거나 검색할 수 없게 됩니다. 빌드된 아티팩트, 임의 바이너리 데이터 (blob), Docker 매니페스트 또는 npm 패키지 파일 등의 매니페스트를 비롯하여 저장소에 저장된 모든 아티팩트 데이터에 액세스할 수 없게 됩니다.
Artifact Registry 리더 역할(roles/artifactregistry.reader) 또는 뷰어 역할(roles/artifactregistry.viewer)이 있는 사용자는 아티팩트 이름, 버전, 태그와 같은 아티팩트 메타데이터를 계속 열람할 수 있습니다.
Artifact Registry 관리자 역할(roles/artifactregistry.admin) 또는 소유자 역할 (roles/owner)이 있는 사용자는 저장소를 삭제할 수 있습니다.
CMEK 조직 정책
Artifact Registry는 CMEK 보호를 필요로 할 수 있는 조직 정책 제약조건을 지원합니다.
정책은 CMEK 보호에 사용할 수 있는 Cloud KMS CryptoKey를 제한할 수 있습니다.
Artifact Registry API가
constraints/gcp.restrictNonCmekServices제약조건의 서비스Deny정책 목록에 있으면 Artifact Registry는 CMEK로 보호되지 않는 새 저장소의 생성을 거부합니다.constraints/gcp.restrictCmekCryptoKeyProjects가 구성되면 Artifact Registry는 허용된 프로젝트, 폴더 또는 조직에서 CryptoKey로 보호되는 CMEK로 보호되는 저장소를 만듭니다.
Pub/Sub도 동일한 제약조건을 지원합니다. 프로젝트에서 Google Cloud
Artifact Registry API를 활성화하면 Artifact Registry는 Google Cloud 기반 암호화 키를 사용하여 주제 ID
gcr로 Pub/Sub 주제를 자동으로 만들려고 합니다. 하지만 Pub/Sub API가 constraints/gcp.restrictNonCmekServices 제약조건의 Deny 정책 목록에 있으면 Pub/Sub은 주제를 만들지 않습니다. 이 시나리오에서는 CMEK 암호화로 gcr 주제를 만들어야 합니다. 자세한 내용은 주제 암호화에 대한 Pub/Sub
안내를 참조하세요.
이러한 정책 구성에 대한 상세 설명은 CMEK 조직 정책을 참조하세요.
다음 단계
- CMEK로 암호화된 저장소 만들기
- CMEK 자세히 알아보기