이 페이지에서는 고객 관리 암호화 키(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)를 참조하세요.
Cloud KMS Autokey를 사용하는 CMEK
CMEK를 수동으로 만들어 Artifact Registry 리소스를 보호하거나 Cloud KMS Autokey를 사용할 수 있습니다. Autokey를 사용하면 Artifact Registry에서 리소스를 만들 때 필요에 따라 키링과 키가 생성됩니다. 암호화 및 복호화 작업에 키를 사용하는 서비스 에이전트가 없으면 생성되며 필요한 Identity and Access Management(IAM) 역할이 부여됩니다. 자세한 내용은 Autokey 개요를 참조하세요.
CMEK를 수동으로 설정하려면 키 만들기 및 권한 부여를 참고하세요.
Autokey를 사용하여 CMEK를 설정하려면 이 페이지의 Autokey를 사용하여 키 만들기를 참고하세요.
저장소를 만들 때 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=PROJECT
PROJECT를 Artifact Registry를 실행 중인 프로젝트의 ID로 바꿉니다.
Artifact Registry 서비스 계정에 CryptoKey 암호화/복호화 IAM 역할(
roles/cloudkms.cryptoKeyEncrypterDecrypter
)을 부여하세요. 만든 키에 대해 이 권한을 부여합니다.콘솔
암호화 키 페이지로 이동합니다.
만든 키를 선택합니다.
Artifact Registry 서비스 계정에 액세스 권한을 부여하세요.
- 정보 패널 표시를 선택합니다.
- 구성원 추가를 클릭합니다.
- Artifact Registry 서비스 계정을 추가합니다. 서비스 계정은 service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com입니다. 여기서 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.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
장소
저장소를 만들 계정에 대한 액세스 권한을 부여하려면 이전 단계를 반복하세요.
이 명령어에 대한 상세 설명은 gcloud kms keys add-iam-policy-binding 문서를 참조하세요.
그런 다음 저장소를 만들고 암호화에 사용할 키를 지정합니다.
Autokey를 사용하여 키 만들기
Autokey는 저장소와 동일한 위치에 새 키를 만듭니다.
필요한 역할
Autokey를 사용하여 보호된 저장소를 만드는 데 필요한 권한을 얻으려면 관리자에게 폴더 또는 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
Cloud KMS Autokey 사용자 (
roles/cloudkms.autokeyUser
) -
Artifact Registry 관리자(
roles/artifactregistry.admin
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
키 만들기
Autokey로 키를 만들기 전에 Cloud KMS Autokey를 사용 설정해야 합니다.
Google Cloud 콘솔에서 저장소 페이지를 엽니다.
저장소 만들기를 클릭합니다.
암호화 섹션에서 Autokey 자동 관리가 포함된 Cloud KMS를 선택합니다.
만들기를 클릭합니다.
액세스 권한 삭제
CMEK로 암호화된 저장소에 대한 액세스 권한을 삭제하는 방법에는 여러 가지가 있습니다.
- 다음 방법 중 하나를 사용하여 Artifact Registry 서비스 계정에서 Cloud KMS CryptoKey 암호화/복호화 역할을 취소합니다.
- 고객 관리 암호화 키를 일시적으로 사용 중지
- 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 소유 및 Google 관리 암호화 키를 사용하여 주제 ID gcr
로 Pub/Sub 주제를 자동으로 만들려고 합니다. 하지만 Pub/Sub API가 제약 조건 constraints/gcp.restrictNonCmekServices
의 Deny
정책 목록에 있으면 Pub/Sub은 주제를 만들지 않습니다. 이 시나리오에서는 CMEK 암호화로 gcr
주제를 만들어야 합니다. 자세한 내용은 Pub/Sub 주제 암호화 안내를 참고하세요.
이러한 정책 구성에 대한 상세 설명은 CMEK 조직 정책을 참조하세요.
다음 단계
- CMEK로 암호화된 저장소 만들기
- CMEK 자세히 알아보기
- Google 소유 및 Google 관리 암호화 키 자세히 알아보기