고객 관리 암호화 키 사용

기본적으로 Eventarc는 저장 중 고객 콘텐츠를 암호화합니다. Eventarc는 사용자 측의 추가 작업 없이 자동으로 암호화를 처리합니다. 이 옵션을 Google 기본 암호화라고 부릅니다.

암호화 키를 제어하려면 Eventarc를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키(CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계를 관리할 수 있습니다. Cloud KMS를 사용하면 감사 로그를 보고 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키(KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.

CMEK로 리소스를 설정한 후 Eventarc 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키(CMEK)를 참조하세요.

고객 관리 암호화 키는 Cloud HSM 클러스터에 또는 외부적으로 Cloud 외부 키 관리자를 사용하여 소프트웨어 키로 저장됩니다.

Cloud KMS는 키가 사용 설정 또는 사용 중지되거나 Eventarc 고급 리소스에서 사용하여 메시지를 암호화 및 복호화할 때 감사 로그를 생성합니다. 자세한 내용은 Cloud KMS 감사 로깅 정보를 참고하세요.

CMEK로 보호되는 대상

Eventarc에서 사용하는 채널에 CMEK를 구성하고 채널을 통과하는 이벤트를 암호화할 수 있습니다.

CMEK로 채널을 사용 설정하면 개발자만 액세스할 수 있는 암호화 키를 사용하여 채널과 연결된 데이터(예: 전송 계층으로 사용되는 Pub/Sub 주제)를 보호할 수 있습니다.

Google Cloud 프로젝트의 Google 채널에 CMEK를 사용 설정하면 해당 프로젝트 및 리전의 Google 이벤트 유형에 대한 모든 Eventarc 트리거가 CMEK 키로 완전히 암호화됩니다. CMEK 키는 트리거별로 적용할 수 없습니다.

시작하기 전에

Eventarc에서 이 기능을 사용하려면 다음 요건을 충족해야 합니다.

콘솔

  1. Enable the Cloud KMS and Eventarc APIs.

    Enable the APIs

  2. 키링을 만듭니다.
  3. 지정된 키링의 키를 만듭니다.

gcloud

  1. gcloud 구성요소를 업데이트합니다.
    gcloud components update
  2. 암호화 키를 저장할 프로젝트에 Cloud KMS 및 Eventarc API를 사용 설정합니다.
    gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
  3. 키링을 만듭니다.
  4. 지정된 키링의 키를 만듭니다.

모든 플래그 및 가능한 값에 대한 정보를 보려면 --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 키는 트리거별로 적용할 수 없습니다.

콘솔

  1. Google Cloud 콘솔에서 Eventarc > 채널 페이지로 이동합니다.

    Eventarc로 이동

  2. Google 제공업체 채널을 클릭합니다.

  3. 채널 수정 페이지에서 고객 관리 암호화 키(CMEK) 사용 체크박스를 선택합니다.

  4. 암호화 키 추가를 클릭합니다.

  5. 리전을 선택하고 CMEK 암호화 키 목록에서 리전에 만든 키링을 선택합니다. 채널당 리전별로 암호화 키를 하나만 추가할 수 있습니다.

  6. 선택사항: 키의 리소스 이름을 수동으로 입력하려면 CMEK 암호화 키 목록에서 키가 표시되지 않나요? 키 리소스 이름을 입력하세요를 클릭하고 지정된 형식으로 키 이름을 입력합니다.

  7. 메시지가 표시되면 eventarc.serviceAgent 역할을 가진 Eventarc 서비스 계정에 cloudkms.cryptoKeyEncrypterDecrypter 역할을 부여합니다.

  8. 선택사항: 암호화 키 추가를 클릭하여 다른 리전에 만든 다른 키링을 추가합니다.

  9. 저장을 클릭합니다.

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를 준수하는지 확인하려면 다음을 실행합니다.

콘솔

  1. Google Cloud 콘솔에서 Eventarc > 트리거 페이지로 이동합니다.

    Eventarc로 이동

  2. Google Cloud 소스를 이벤트 제공자 및 CMEK를 사용해 보호한 리전으로 나열하는 트리거를 클릭합니다.

  3. 트리거 세부정보 페이지에서 암호화 상태에 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를 사용 설정하려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Eventarc > 채널 페이지로 이동합니다.

    Eventarc로 이동

  2. 서드 파티 제공업체 채널을 클릭합니다.

  3. 채널 세부정보 페이지에서 수정을 클릭합니다.

  4. 채널 수정 페이지에서 고객 관리 암호화 키(CMEK) 사용 체크박스를 선택합니다.

  5. CMEK 암호화 키 목록에서 리전에 만든 키링을 선택합니다. 채널당 리전별로 암호화 키를 하나만 추가할 수 있습니다.

  6. 선택사항: 사용하려는 키의 리소스 이름을 수동으로 입력하려면 CMEK 암호화 키 목록에서 수동으로 키 입력을 클릭하고 지정된 형식의 키 이름을 입력합니다.

  7. 메시지가 표시되면 eventarc.serviceAgent 역할을 가진 Eventarc 서비스 계정에 cloudkms.cryptoKeyEncrypterDecrypter 역할을 부여합니다.

  8. 저장을 클릭합니다.

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를 준수하는지 확인하려면 다음을 실행합니다.

콘솔

  1. Google Cloud 콘솔에서 Eventarc > 트리거 페이지로 이동합니다.

    Eventarc로 이동

  2. 서드 파티 소스가 이벤트 제공자 및 CMEK를 사용해 보호한 리전인 트리거를 클릭합니다.

  3. 트리거 세부정보 페이지에서 암호화 상태에 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 보호를 삭제하려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Eventarc > 채널 페이지로 이동합니다.

    Eventarc로 이동

  2. 채널 유형에 따라 다음을 수행합니다.

    Google 채널

    1. Google 제공업체 채널을 클릭합니다.
    2. 채널 수정 페이지에서 CMEK 암호화 키 목록 위에 포인터를 가져가 항목 삭제 버튼을 표시합니다.
    3. 항목 삭제를 클릭합니다.
    4. 저장을 클릭합니다.

    서드 파티 채널

    1. 서드 파티 제공업체 채널을 클릭합니다.
    2. 채널 세부정보 페이지에서 수정을 클릭합니다.
    3. 채널 수정 페이지에서 고객 관리 암호화 키(CMEK) 사용 체크박스를 선택 해제합니다.
    4. 저장을 클릭합니다.

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 가격 책정을 참조하세요.

다음 단계