기본적으로 Eventarc는 저장 중 고객 콘텐츠를 암호화합니다. Eventarc는 사용자 측의 추가 작업 없이 자동으로 암호화를 처리합니다. 이 옵션을 Google 기본 암호화라고 부릅니다.
암호화 키를 제어하려면 Eventarc를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키(CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계를 관리할 수 있습니다. Cloud KMS를 사용하면 감사 로그를 보고 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키(KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.
CMEK로 리소스를 설정한 후 Eventarc 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키(CMEK)를 참조하세요.
고객 관리 암호화 키는 Cloud HSM 클러스터에 또는 외부적으로 Cloud 외부 키 관리자를 사용하여 소프트웨어 키로 저장됩니다.
CMEK로 보호되는 대상
다음 리소스를 통과하는 이벤트 메시지를 암호화하도록 CMEK를 구성할 수 있습니다.
MessageBus
: Eventarc Advanced 버스Pipeline
: Eventarc Advanced 파이프라인GoogleApiSource
: 특정 버스의 Google API 이벤트 구독을 나타내는 리소스
자세한 내용은 Eventarc Advanced 개요를 참고하세요.
리소스에 CMEK를 사용 설정하면 개발자만 액세스할 수 있는 암호화 키를 사용하여 해당 리전의 리소스와 연결된 데이터를 보호할 수 있습니다.
Cloud KMS와 Eventarc는 리전화된 서비스입니다. Cloud KMS 키 및 보호된 Eventarc 고급 리소스의 리전은 동일해야 합니다.
시작하기 전에
Eventarc에서 이 기능을 사용하려면 다음 작업을 실행해야 합니다.
콘솔
-
Enable the Cloud KMS and Eventarc APIs.
- 키링을 만듭니다.
- 지정된 키링의 키를 만듭니다.
gcloud
gcloud
구성요소를 업데이트합니다.gcloud components update
- 암호화 키를 저장할 프로젝트에 Cloud KMS 및 Eventarc API를 사용 설정합니다.
gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
- 키링을 만듭니다.
- 지정된 키링의 키를 만듭니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help
플래그와 함께 명령어를 실행하세요.
Eventarc 서비스 계정에 키에 대한 액세스 권한 부여
Eventarc 서비스 계정에 Cloud KMS 키에 대한 액세스 권한을 부여하려면 서비스 계정을 키의 주 구성원으로 추가하고 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할을 부여합니다.
콘솔
Google Cloud 콘솔을 사용하여 버스 또는 파이프라인에 CMEK를 사용 설정하면 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할을 부여하라는 메시지가 표시됩니다. 자세한 내용은 이 문서의 버스에 CMEK 사용 설정 또는 파이프라인에 CMEK 사용 설정을 참고하세요.
gcloud
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location REGION \ --member serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
다음을 바꿉니다.
KEY_NAME
: 키의 이름입니다(예:my-key
).KEY_RING
: 키링의 이름입니다(예:my-keyring
).REGION
: 키의 위치입니다(예:us-central1
).SERVICE_AGENT_EMAIL
:eventarc.serviceAgent
역할이 있는 서비스 계정의 이메일 주소입니다.예를 들면
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
입니다. 자세한 내용은 서비스 에이전트를 참조하세요.
버스에 CMEK 사용 설정
Eventarc Advanced 버스에 CMEK를 사용 설정하면 버스를 통과하는 모든 메시지가 CMEK 키로 완전히 암호화됩니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 버스 페이지로 이동합니다.
버스를 만들거나 버스를 업데이트하는 경우 버스 이름을 클릭합니다.
버스 세부정보 페이지에서
수정을 클릭합니다.버스 수정 페이지에서 암호화의 Cloud KMS 키를 선택합니다.
키 유형 목록에서 키를 관리할 방법을 선택합니다.
키를 수동으로 관리하거나 키링과 키를 주문형으로 생성할 수 있는 Autokey를 사용할 수 있습니다. Autokey 옵션이 사용 중지된 경우 아직 현재 리소스 유형과 통합되지 않은 것입니다.
고객 관리 키를 선택합니다.
선택사항: 키의 리소스 이름을 수동으로 입력하려면 고객 관리 키 선택 목록에서 수동으로 키 입력을 클릭하고 지정된 형식의 키 이름을 입력합니다.
메시지가 표시되면 Eventarc 서비스 에이전트에
cloudkms.cryptoKeyEncrypterDecrypter
역할을 부여합니다.저장을 클릭합니다.
gcloud
gcloud beta eventarc message-buses update
명령어를 사용하여 버스에 CMEK를 사용 설정합니다.
gcloud beta eventarc message-buses update BUS_NAME \ --location=REGION \ --crypto-key=KEY
다음을 바꿉니다.
BUS_NAME
: 버스의 ID 또는 정규화된 식별자REGION
: 지원되는 Eventarc Advanced 위치KEY
:projects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
형식의 정규화된 Cloud KMS 키 이름입니다.키의
REGION
는 보호할 버스의 위치와 일치해야 합니다.
Cloud KMS 사용량 확인
이제 버스가 CMEK를 준수하는지 확인합니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 버스 페이지로 이동합니다.
CMEK를 사용하여 보호한 버스의 이름을 클릭합니다.
버스 세부정보 페이지에서 암호화 상태에
Event messages encrypted using customer-managed encryption keys
메시지가 표시됩니다.
gcloud
gcloud beta eventarc message-buses describe
명령어를 사용하여 버스를 설명합니다.
gcloud beta eventarc message-buses describe BUS_NAME \ --location=REGION
출력은 다음과 비슷하게 표시됩니다.
cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_ID/locations/REGION/messageBuses/BUS_NAME updateTime: '2022-06-28T17:24:56.365866104Z'
cryptokeyName
값은 버스에 사용된 Cloud KMS 키를 보여줍니다.
버스의 CMEK 사용 중지
버스와 연결된 CMEK 보호를 사용 중지할 수 있습니다. 버스를 통해 전송되는 이벤트는 여전히 Google 소유 및 Google 관리 키로 보호됩니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 버스 페이지로 이동합니다.
버스 이름을 클릭합니다.
버스 세부정보 페이지에서
수정을 클릭합니다.버스 수정 페이지에서 고객 관리 암호화 키 (CMEK) 사용 체크박스를 선택 해제합니다.
저장을 클릭합니다.
gcloud
gcloud beta eventarc message-buses update
명령어를 사용하여 버스의 CMEK를 사용 중지합니다.
gcloud beta eventarc message-buses update BUS_NAME \ --location=REGION \ --clear-crypto-key
파이프라인에 CMEK 사용 설정
Eventarc Advanced 파이프라인에 CMEK를 사용 설정하면 파이프라인을 통과하는 모든 메시지가 CMEK 키로 완전히 암호화됩니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 파이프라인 페이지로 이동합니다.
파이프라인을 만들거나 파이프라인을 업데이트하는 경우 파이프라인 이름을 클릭합니다.
파이프라인 세부정보 페이지에서
수정을 클릭합니다.파이프라인 수정 페이지의 암호화에서 Cloud KMS 키를 선택합니다.
키 유형 목록에서 키를 관리할 방법을 선택합니다.
키를 수동으로 관리하거나 키링과 키를 주문형으로 생성할 수 있는 Autokey를 사용할 수 있습니다. Autokey 옵션이 사용 중지된 경우 아직 현재 리소스 유형과 통합되지 않은 것입니다.
고객 관리 키를 선택합니다.
선택사항: 키의 리소스 이름을 수동으로 입력하려면 고객 관리 키 선택 목록에서 수동으로 키 입력을 클릭하고 지정된 형식의 키 이름을 입력합니다.
메시지가 표시되면 Eventarc 서비스 에이전트에
cloudkms.cryptoKeyEncrypterDecrypter
역할을 부여합니다.저장을 클릭합니다.
gcloud
gcloud beta eventarc pipelines update
명령어를 사용하여 파이프라인에 CMEK를 사용 설정합니다.
gcloud beta eventarc pipelines update PIPELINE_NAME \ --location=REGION \ --crypto-key=KEY
다음을 바꿉니다.
PIPELINE_NAME
: 파이프라인의 ID 또는 정규화된 식별자REGION
: 지원되는 Eventarc Advanced 위치KEY
:projects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
형식의 정규화된 Cloud KMS 키 이름입니다.키의
REGION
는 보호할 파이프라인의 위치와 일치해야 합니다.
Cloud KMS 사용량 확인
이제 파이프라인이 CMEK를 준수하는지 확인합니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 파이프라인 페이지로 이동합니다.
CMEK를 사용하여 보호한 파이프라인의 이름을 클릭합니다.
파이프라인 세부정보 페이지에서 암호화 상태에
Event messages encrypted using customer-managed encryption keys
메시지가 표시됩니다.
gcloud
gcloud beta eventarc pipelines describe
명령어를 사용하여 파이프라인의 CMEK를 확인합니다.
gcloud beta eventarc pipelines describe PIPELINE_NAME \ --location=REGION
출력은 다음과 비슷하게 표시됩니다.
createTime: '2022-06-28T18:05:52.403999904Z' cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME destinations: ... name: projects/PROJECT_ID/locations/REGION/pipelines/PIPELINE_NAME uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3 updateTime: '2022-06-28T18:09:18.650727516Z'
cryptokeyName
값은 파이프라인에 사용된 Cloud KMS 키를 보여줍니다.
파이프라인에 CMEK 사용 중지
파이프라인과 연결된 CMEK 보호를 사용 중지할 수 있습니다. 파이프라인을 통해 전송되는 이벤트는 여전히 Google 소유 및 Google 관리 키로 보호됩니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 파이프라인 페이지로 이동합니다.
파이프라인 이름을 클릭합니다.
파이프라인 세부정보 페이지에서
수정을 클릭합니다.파이프라인 수정 페이지에서 고객 관리 암호화 키 (CMEK) 사용 체크박스를 선택 해제합니다.
저장을 클릭합니다.
gcloud
gcloud beta eventarc pipelines update
명령어를 사용하여 파이프라인에 CMEK를 사용 중지합니다.
gcloud beta eventarc pipelines update PIPELINE_NAME \ --location=REGION \ --clear-crypto-key
Google API 소스에 CMEK 사용 설정
GoogleApiSource
리소스에 CMEK를 사용 설정하면 해당 리소스에 대해 수집된 모든 메시지가 CMEK 키로 완전히 암호화됩니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 버스 페이지로 이동합니다.
버스를 만들거나 버스를 업데이트하는 경우 버스 이름을 클릭합니다.
버스 세부정보 페이지에서
수정을 클릭합니다.메시지 소스를 추가하려면
소스 추가를 클릭합니다.메시지 소스가 이미 있는 경우 먼저 삭제한 다음 새 메시지 소스를 추가해야 합니다.
메시지 소스 추가 창에서 Google API 메시지 제공업체의 기본값
google-api-source
을 수락합니다.암호화에서 Cloud KMS 키를 선택하고 다음을 실행합니다.
키 유형 목록에서 키를 관리할 방법을 선택합니다.
키를 수동으로 관리하거나 키링과 키를 주문형으로 생성할 수 있는 Autokey를 사용할 수 있습니다. Autokey 옵션이 사용 중지된 경우 아직 현재 리소스 유형과 통합되지 않은 것입니다.
고객 관리 키 선택에서 키를 선택합니다.
고객 관리 키를 보려면 먼저 리전을 선택해야 합니다.
선택사항: 키의 리소스 이름을 수동으로 입력하려면 고객 관리 키 선택 목록에서 수동으로 키 입력을 클릭하고 지정된 형식의 키 이름을 입력합니다.
메시지가 표시되면 Eventarc 서비스 에이전트에
cloudkms.cryptoKeyEncrypterDecrypter
역할을 부여합니다.
만들기를 클릭합니다.
이렇게 하면 Google 소스에서 직접 수신되는 이벤트를 자동으로 수집할 수 있으며 모든 이벤트 메시지는 CMEK 키로 완전히 암호화됩니다.
GoogleApiSource
와 동일한 Google Cloud 프로젝트에 있는 리소스의 이벤트만 게시됩니다. 자세한 내용은 Google 소스에서 이벤트 게시를 참고하세요.저장을 클릭합니다.
gcloud
gcloud beta eventarc google-api-sources update
명령어를 사용하여 GoogleApiSource
리소스에 CMEK를 사용 설정합니다.
gcloud beta eventarc google-api-sources update GOOGLE_API_SOURCE_NAME \ --location=REGION \ --crypto-key=KEY
다음을 바꿉니다.
GOOGLE_API_SOURCE_NAME
:GoogleApiSource
리소스의 ID 또는 정규화된 식별자REGION
: 지원되는 Eventarc Advanced 위치KEY
:projects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
형식의 정규화된 Cloud KMS 키 이름입니다.키의
REGION
는 보호할 리소스의 위치와 일치해야 합니다.
Cloud KMS 사용량 확인
이제 리소스가 CMEK를 준수하는지 확인합니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 버스 페이지로 이동합니다.
Cloud KMS 키를 사용하여 메시지 소스를 보호한 버스의 이름을 클릭합니다.
버스 세부정보 페이지에서
수정을 클릭합니다.메시지 소스를 암호화하는 키가 표시됩니다.
gcloud
gcloud beta eventarc google-api-sources describe
명령어를 사용하여 GoogleApiSource
리소스의 CMEK를 확인합니다.
gcloud beta eventarc google-api-sources describe GOOGLE_API_SOURCE_NAME \ --location=REGION
출력은 다음과 비슷하게 표시됩니다.
createTime: '2022-06-28T18:05:52.403999904Z' cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME destination: projects/PROJECT_ID/locations/REGION/messageBuses/BUS_NAME name: projects/PROJECT_ID/locations/REGION/googleApiSources/GOOGLE_API_SOURCE_NAME uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3 updateTime: '2022-06-28T18:09:18.650727516Z'
cryptokeyName
값은 파이프라인에 사용된 Cloud KMS 키를 보여줍니다.
Google API 소스에 CMEK 사용 중지
Google API 소스와 연결된 CMEK 보호를 사용 중지할 수 있습니다. GoogleApiSource
리소스를 통해 수집된 이벤트는 여전히 Google 소유 및 Google 관리 키로 보호됩니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 버스 페이지로 이동합니다.
CMEK를 사용하여 메시지 소스를 보호한 버스의 이름을 클릭합니다.
버스 세부정보 페이지에서
수정을 클릭합니다.Cloud KMS 키로 암호화된 메시지 소스를 삭제하려면
리소스 삭제를 클릭합니다.필요한 경우 메시지 소스를 다시 추가합니다.
gcloud
gcloud beta eventarc google-api-sources update
명령어를 사용하여 GoogleApiSource
리소스에 대해 CMEK를 사용 중지합니다.
gcloud beta eventarc google-api-sources update GOOGLE_API_SOURCE_NAME \ --location=REGION \ --clear-crypto-key
Cloud KMS 키 사용 중지 및 사용 설정
키 버전은 데이터 암호화, 복호화, 서명, 확인에 사용하는 암호화 키 자료를 저장합니다. 키로 암호화된 데이터에 액세스할 수 없도록 이 키 버전을 사용 중지할 수 있습니다.
Eventarc가 Cloud KMS 키에 액세스할 수 없는 경우 FAILED_PRECONDITION
오류 및 이벤트 전송이 중지되고 이벤트 라우팅이 실패합니다. 암호화된 데이터에 다시 액세스할 수 있도록 사용 중지됨 상태의 키를 사용 설정할 수 있습니다.
Cloud KMS 키 사용 중지
Eventarc에서 키를 사용하여 이벤트 데이터를 암호화하거나 복호화하지 못하도록 하려면 다음 중 하나를 수행합니다.
- 버스 또는 파이프라인에 구성한 키 버전을 사용 중지하는 것이 좋습니다. 특정 키와 연결된 Eventarc 고급 버스 또는 파이프라인에만 영향을 미칩니다.
- 선택사항: Eventarc 서비스 계정에서
cloudkms.cryptoKeyEncrypterDecrypter
역할을 취소합니다. 이렇게 하면 CMEK를 사용하여 암호화된 이벤트를 지원하는 모든 프로젝트의 Eventarc 리소스에 영향을 줍니다.
어느 작업도 즉시 액세스 취소를 보장하지는 않지만 일반적으로 ID 및 액세스 관리(IAM) 변경 사항은 더 빠르게 전파됩니다. 자세한 내용은 Cloud KMS 리소스 일관성 및 액세스 변경 전파를 참조하세요.
Cloud KMS 키 다시 사용 설정
이벤트 전송 및 라우팅을 재개하려면 Cloud KMS에 대한 액세스를 복원합니다.
감사 로깅 및 문제 해결
Cloud KMS는 키가 사용 설정 또는 사용 중지되거나 Eventarc 고급 리소스에서 사용하여 메시지를 암호화 및 복호화할 때 감사 로그를 생성합니다. 자세한 내용은 Cloud KMS 감사 로깅 정보를 참고하세요.
Cloud 외부 키 관리자(Cloud EKM)를 통해 외부 관리 키를 사용할 때 발생할 수 있는 문제를 해결하려면 Cloud EKM 오류 참조를 참조하세요.
가격 책정
버스 통합은 Google Cloud 프로젝트에 비용이 청구되는 키 작업 이외의 추가 비용을 발생시키지 않습니다. 파이프라인에서 CMEK를 사용하면 Pub/Sub 가격 책정에 따라 Cloud KMS 서비스 사용 요금이 발생합니다.
최신 가격 책정 정보에 대한 자세한 내용은 Cloud KMS 가격 책정을 참조하세요.