기본적으로 Google은 저장 데이터를 암호화합니다. Google Cloud는 사용자의 추가 작업 없이 이 기본 암호화를 처리하고 관리합니다.
데이터 보호와 관련된 특정 규정 준수 또는 규제 요구사항이 있는 경우에 고객 관리 암호화 키(CMEK)를 사용할 수 있습니다. CMEK를 사용하면 사용자만 액세스할 수 있는 암호화 키를 통해 Eventarc 및 관련 저장 데이터를 보호하고 Cloud Key Management Service(Cloud KMS)를 사용하여 만들고 관리할 수 있습니다. 키는 개발자가 소유하며 Google에서 이 키를 제어하지 않으므로 키가 중지되거나 삭제되면 누구도 키로 보호되는 데이터에 액세스할 수 없습니다.
고객 관리 암호화 키는 Cloud HSM 클러스터에 또는 외부적으로 Cloud 외부 키 관리자를 사용하여 소프트웨어 키로 저장됩니다.
Cloud KMS는 키가 사용 설정 또는 사용 중지되거나 Eventarc 채널 리소스에서 사용하여 메시지를 암호화 및 복호화할 때 감사 로그를 생성합니다. 자세한 내용은 Cloud KMS 감사 로깅 정보를 참조하세요.
CMEK로 보호되는 대상
Eventarc에서 사용하는 채널에 CMEK를 구성하고 채널을 통과하는 이벤트를 암호화할 수 있습니다.
CMEK로 채널을 사용 설정하면 개발자만 액세스할 수 있는 암호화 키를 사용하여 채널과 연결된 데이터(예: 전송 계층으로 사용되는 Pub/Sub 주제)를 보호할 수 있습니다.
Google Cloud 프로젝트의 Google 채널에 CMEK를 사용 설정하면 해당 프로젝트 및 리전의 Google 이벤트 유형에 대한 모든 Eventarc 트리거가 CMEK 키로 완전히 암호화됩니다. CMEK 키는 트리거별로 적용할 수 없습니다.
시작하기 전에
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
플래그와 함께 명령어를 실행하세요.
Cloud KMS와 Eventarc는 리전화된 서비스입니다. Cloud KMS 키 및 보호된 Eventarc 채널의 리전은 동일해야 합니다.
Eventarc 서비스 계정에 키에 대한 액세스 권한 부여
Eventarc 서비스 계정에 Cloud KMS 키에 대한 액세스 권한을 부여하려면 서비스 계정을 키의 주 구성원으로 추가하고 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할을 부여합니다.
콘솔
콘솔을 통해 Google 또는 서드 파티 채널에 CMEK를 사용 설정하면 서비스 계정에 Cloud KMS CryptoKey 암호화/복호화 역할을 부여하라는 메시지가 표시됩니다. 자세한 내용은 이 문서에서 Google 이벤트 유형에 CMEK 사용 설정 또는 서드 파티 이벤트 채널에 CMEK 사용 설정을 참조하세요.
gcloud
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
다음을 바꿉니다.
KEY_NAME
: 키의 이름입니다. 예를 들면my-key
입니다.KEY_RING
: 키링의 이름입니다. 예:my-keyring
LOCATION
: 키의 위치입니다. 예:us-central1
SERVICE_AGENT_EMAIL
:eventarc.serviceAgent
역할이 있는 서비스 계정의 이메일 주소입니다.service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
) 자세한 내용은 서비스 에이전트를 참조하세요.
Google 이벤트 유형에 CMEK 사용 설정
Google 이벤트 유형을 라우팅하는 Eventarc 트리거는 프로젝트 및 리전별 Google 채널이라고 하는 가상 채널에 이벤트를 게시합니다. 이 가상 채널은 모든 Eventarc 리전에서 사용할 수 있습니다.
Google Cloud 프로젝트에서 Google 채널에 CMEK를 사용 설정하면 해당 프로젝트 및 리전의 Google 이벤트 유형에 대한 모든 Eventarc 트리거가 CMEK 키로 완전히 암호화됩니다. 여러 CMEK 키를 추가하고 Google 채널의 특정 리전과 각각 연결할 수 있습니다. CMEK 키는 트리거별로 적용할 수 없습니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 채널 페이지로 이동합니다.
Google 제공업체 채널을 클릭합니다.
채널 수정 페이지에서 고객 관리 암호화 키(CMEK) 사용 체크박스를 선택합니다.
암호화 키 추가를 클릭합니다.
리전을 선택하고 CMEK 암호화 키 목록에서 리전에 만든 키링을 선택합니다. 채널당 리전별로 암호화 키를 하나만 추가할 수 있습니다.
선택사항: 키의 리소스 이름을 수동으로 입력하려면 CMEK 암호화 키 목록에서 키가 표시되지 않나요? 키 리소스 이름을 입력하세요를 클릭하고 지정된 형식으로 키 이름을 입력합니다.
메시지가 표시되면
eventarc.serviceAgent
역할을 가진 Eventarc 서비스 계정에cloudkms.cryptoKeyEncrypterDecrypter
역할을 부여합니다.선택사항: 암호화 키 추가를 클릭하여 다른 리전에 만든 다른 키링을 추가합니다.
저장을 클릭합니다.
gcloud
gcloud eventarc google-channels update \ --location=LOCATION \ --crypto-key=KEY
다음을 바꿉니다.
LOCATION
: 보호할 Google 채널의 위치입니다. 사용된 키의 위치와 일치해야 합니다.KEY
:projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
형식의 정규화된 Cloud KMS 키 이름입니다.
자체 기존 주제를 사용하여 Pub/Sub 트리거를 만드는 경우 포괄적인 CMEK 보호를 위해 주제에 KMS 키를 구성하는 것이 좋습니다. 자세한 내용은 Pub/Sub 주제 구성을 참조하세요.
Cloud KMS 사용량 확인
채널이 현재 CMEK를 준수하는지 확인하려면 다음을 실행합니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 트리거 페이지로 이동합니다.
Google Cloud 소스를 이벤트 제공자 및 CMEK를 사용해 보호한 리전으로 나열하는 트리거를 클릭합니다.
트리거 세부정보 페이지에서 암호화 상태에
Events encrypted using Customer-managed encryption keys
메시지가 표시됩니다.
gcloud
gcloud eventarc google-channels describe \ --location=LOCATION
출력은 다음과 비슷하게 표시됩니다.
cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig updateTime: '2022-06-28T17:24:56.365866104Z'
cryptokeyName
값은 Google 채널에 사용된 Cloud KMS 키를 보여줍니다.
서드 파티 채널에 CMEK 사용 설정
서드 파티용 Eventarc 채널은 Eventarc 소스를 제공하는 Google Cloud 외부 항목이 대상과 상호작용할 수 있는 리소스입니다. 이 채널은 리전별로 적용되며 서드 파티 채널당 하나의 키만 추가할 수 있습니다.
서드 파티 채널에 CMEK를 사용 설정하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Eventarc > 채널 페이지로 이동합니다.
서드 파티 제공업체 채널을 클릭합니다.
채널 세부정보 페이지에서 수정을 클릭합니다.
채널 수정 페이지에서 고객 관리 암호화 키(CMEK) 사용 체크박스를 선택합니다.
CMEK 암호화 키 목록에서 리전에 만든 키링을 선택합니다. 채널당 리전별로 암호화 키를 하나만 추가할 수 있습니다.
선택사항: 사용하려는 키의 리소스 이름을 수동으로 입력하려면 CMEK 암호화 키 목록에서 수동으로 키 입력을 클릭하고 지정된 형식의 키 이름을 입력합니다.
메시지가 표시되면
eventarc.serviceAgent
역할을 가진 Eventarc 서비스 계정에cloudkms.cryptoKeyEncrypterDecrypter
역할을 부여합니다.저장을 클릭합니다.
gcloud
gcloud eventarc channels update CHANNEL_NAME \ --location=LOCATION \ --crypto-key=KEY
다음을 바꿉니다.
CHANNEL_NAME
: 서드 파티 채널의 이름입니다. 새 서드 파티 채널을 만들려면 채널 만들기를 참조하세요.LOCATION
: 보호할 서드 파티 채널의 위치입니다. 키의 위치와 일치해야 합니다.KEY
:projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
형식의 정규화된 Cloud KMS 키 이름입니다.
Cloud KMS 사용량 확인
채널이 현재 CMEK를 준수하는지 확인하려면 다음을 실행합니다.
콘솔
Google Cloud 콘솔에서 Eventarc > 트리거 페이지로 이동합니다.
서드 파티 소스가 이벤트 제공자 및 CMEK를 사용해 보호한 리전인 트리거를 클릭합니다.
트리거 세부정보 페이지에서 암호화 상태에
Events encrypted using Customer-managed encryption keys
메시지가 표시됩니다.
gcloud
gcloud eventarc channels describe CHANNEL_NAME \ --location=LOCATION
출력은 다음과 비슷하게 표시됩니다.
createTime: '2022-06-28T18:05:52.403999904Z' cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig pubsubTopic: projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID state: ACTIVE uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3 updateTime: '2022-06-28T18:09:18.650727516Z'
cryptokeyName
값은 서드 파티 채널에 사용되는 Cloud KMS 키를 보여줍니다.
CMEK 사용 중지
채널과 연결된 CMEK 보호를 사용 중지할 수 있습니다. 이러한 채널을 통해 제공되는 이벤트는 여전히 Google 소유 및 Google 관리 키로 보호됩니다. 채널과 연결된 CMEK 보호를 삭제하려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Eventarc > 채널 페이지로 이동합니다.
채널 유형에 따라 다음을 수행합니다.
Google 채널
- Google 제공업체 채널을 클릭합니다.
- 채널 수정 페이지에서 CMEK 암호화 키 목록 위에 포인터를 가져가 항목 삭제 버튼을 표시합니다.
- 항목 삭제를 클릭합니다.
- 저장을 클릭합니다.
서드 파티 채널
- 서드 파티 제공업체 채널을 클릭합니다.
- 채널 세부정보 페이지에서 수정을 클릭합니다.
- 채널 수정 페이지에서 고객 관리 암호화 키(CMEK) 사용 체크박스를 선택 해제합니다.
- 저장을 클릭합니다.
gcloud
채널 유형에 따라 다음을 수행합니다.
Google 채널
gcloud eventarc google-channels \ update --clear-crypto-key
서드 파티 채널
gcloud eventarc channels CHANNEL_NAME \ update --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에 대한 액세스를 복원합니다.
가격 책정
이 통합은 Google Cloud 프로젝트에 비용이 청구되는 키 작업 이외의 추가 비용을 발생시키지 않습니다. 채널에서 CMEK를 사용하면 Pub/Sub 가격 책정에 따라 Cloud KMS 서비스 사용 요금이 발생합니다.
최신 가격 책정 정보에 대한 자세한 내용은 Cloud KMS 가격 책정을 참조하세요.