Key Protect 통합

IBM Cloud® Databases에 저장하는 데이터는 기본적으로 무작위로 생성된 키를 사용하여 암호화됩니다. 암호화 키를 제어하려면 BYOK(Bring Your Own Key) 방식을 IBM Key Protect 통해 자체 키를 가져와 데이터베이스 및 백업을 암호화할 수 있습니다.

본 문서는 와 Key Protect 의 Cloud Databases 통합을 다루며, 여기에는, Databases for MongoDB, Databases for Redis, Databases for Elasticsearch IBM Cloud® Databases for MySQL,, Databases for PostgreSQL 및 Messages for RabbitMQ 가 포함됩니다.

시작하려면 계정에 IBM Cloud Key Protect 프로비저닝이 필요합니다.

Key Protect에서 키 작성 또는 추가

Key Protect의 인스턴스로 이동하여 키를 생성하거나 입력하십시오.

UI에서 서비스 권한 부여하기

Key Protect 배치에 사용할 수 있도록 Cloud Databases에 권한을 부여하십시오.

  1. IBM Cloud 대시보드를 여십시오.
  2. 메뉴 바에서 관리-> 액세스(IAM) 를 클릭합니다.
  3. 사이드 탐색에서 권한을 클릭하십시오.
  4. 작성을 클릭하십시오.
  5. 소스 서비스 메뉴에서 배치 서비스를 선택하십시오. 예를 들어, Databases for PostgreSQL 또는 Messages for RabbitMQ입니다.
  6. 소스 서비스 리소스 메뉴에서 모든 리소스를 선택하십시오.
  7. 대상 서비스 메뉴에서 Key Protect를 선택하십시오.
  8. 대상 서비스 의 리소스 그룹으로 기본값인 'Account'를 선택하거나 유지하십시오
  9. 대상 서비스 인스턴스 ID 메뉴에서 권한 부여할 서비스 인스턴스를 선택하십시오.
  10. 독자 역할을 사용으로 설정하십시오.
  11. 백업에 "BYOK(Bring Your Own Key)"를 사용하려면 종속자 서비스 권한 부여 섹션에서 권한을 위임할 수 있게 설정 상자를 선택하십시오.
  12. 권한 부여를 클릭하십시오.

키로 배치를 프로비저닝하기 전에 서비스 권한이 없는 경우 프로비저닝이 실패합니다.

Key Protect 키 사용

Cloud Databases 배치에 키 사용 권한을 부여한 후 배치를 프로비저닝할 때 키 이름 또는 CRN을 제공합니다. 배치는 암호화 키를 사용하여 데이터를 암호화합니다.

UI에서 Key Protect 키 사용

카탈로그 페이지에서 프로비저닝하는 경우 드롭 다운 메뉴에서 Key Protect 인스턴스 및 키를 선택하십시오.

CLI에서 Key Protect 키 사용

CLI를 통해 매개변수 JSON 오브젝트에 disk_encryption_key_crn 매개변수를 사용하십시오.

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-NAME> standard us-south \
-p \ '{
  "disk_encryption_key_crn": "crn:v1:<...>:key:<id>"
}'

해당 Key Protect 키는 ID뿐만 아니라 전체 CRN으로 식별되어야 합니다. key protect CRN은 crn:v1:<...>:key:<id> 형식입니다.

API에서 Key Protect 키 사용

API를 통해 요청 본문에 disk_encryption_key 매개변수를 사용하십시오.

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "blue-us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-x-standard",
    "disk_encryption_key_crn": "crn:v1:<...>:key:<id>"
  }'

해당 Key Protect 키는 ID뿐만 아니라 전체 CRN으로 식별되어야 합니다. key protect CRN은 crn:v1:<...>:key:<id> 형식입니다.

키 순환

Key Protect는 수동 및 자동 키 순환을 제공하며 키 순환은 Cloud Databases 배치에서 지원됩니다. 키를 순환하는 경우 프로세스에서 KMS 상태 동기화 태스크를 시작하고 배치는 새 키로 다시 암호화됩니다. 태스크는 배치 _개요_의 태스크 페이지에 표시되고 연관된 Key Protect 및 Cloud Databases 이벤트는 Activity Tracker로 전송됩니다.

자세한 내용은 수동 또는 자동 회전을 참조하세요.

배치 삭제

Key Protect 키로 보호되는 배치를 삭제하는 경우 배치는 소프트 삭제 기간 동안(최대 9일) 키에 대해 등록된 상태로 유지됩니다. 소프트 삭제 기간에 키를 삭제하려면 키를 강제 삭제합니다. 소프트 삭제 기간이 지나면 키를 정상적으로 삭제할 수 있습니다. 키를 삭제할 수 있는 시기를 확인하려면 키와 배포 간의 연결을 확인하세요.

암호 제거

암호 제거는 파괴적인 조치입니다. 키가 삭제되면 데이터를 복구할 수 없습니다.

Key Protect를 사용하면 IBM Cloud® 배치를 포함한 Cloud Databases 서비스에서 사용 중인 키의 강제 삭제를 시작할 수 있습니다. 이 조치를 암호 제거라고 합니다. 배치에서 사용 중인 키를 삭제하면 데이터가 포함된 디스크가 잠기고 배치가 사용 안함으로 설정됩니다. UI, CLI, API의 보안 설정과 같은 일부 메타데이터와 UI에 액세스할 수 있지만 여기에 포함된 데이터베이스나 데이터에는 액세스할 수 없습니다. 키 삭제 요청이 Activity Tracker Event Routing 로 kms.secrets.delete 전송됩니다.

백업을 위한 고유 키 가져오기

Key Protect를 사용하는 경우, 데이터베이스를 프로비저닝할 때 키를 지정하여 배치의 백업을 보관하는 Cloud Object Storage 디스크를 암호화할 수도 있습니다.

백업용 BYOK는 미국 us-southus-east, eu-de 사용할 수 있습니다.

us-south 에 있는 키만 지역 eu-de 장애에 내구성을 가집니다. 지역 장애 발생 시에도 백업을 사용할 수 있도록 하려면, 배포 위치와 관계없이 또는 eu-de us-south 의 키를 사용해야 합니다.

위임 권한 부여

배포에서 키를 Key Protect 사용하려면 서비스 권한 부여 시 위임된 인증을 활성화해야 합니다. 키로 배치를 프로비저닝하기 전에 위임 권한이 없는 경우 프로비저닝이 실패합니다.

CLI에서 프로비저닝 시 키 사용

적절한 권한 및 위임이 부여되면, 배치를 프로비저닝할 때 키 이름 또는 CRN을 제공합니다.

CLI를 통해 매개변수 JSON 오브젝트에 backup_encryption_key_crn 매개변수를 사용하십시오.

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-NAME> standard us-south \
-p \ '{
  "backup_encryption_key_crn": "crn:v1:<...>:key:<id>"
}'

API에서 프로비저닝 시 키 사용

API를 통해 요청 본문에 backup_encryption_key_crn 매개변수를 사용하십시오.

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "blue-us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-x-standard",
    "backup_encryption_key_crn": "crn:v1:<...>:key:<id>"
  }'

위임을 사용으로 설정하고 배치를 프로비저닝하고 나면 IAM의 _권한_에 두 개의 항목이 표시됩니다. 하나는 해당 상태를 위임자로 나열하는 배치에 대한 항목입니다. 이는 "사용자 작성"입니다.

위임자 Key Protect 권한 부여 예시
역할 소스 대상 유형
권한 위임자, 독자 <cloud-databases> 서비스 Key Protect 서비스 사용자 정의

다른 하나는 해당 백업을 위한 Cloud Object Storage 버킷에 대한 항목이며, 여기서 배치는 개시자입니다.

예시 ~ Key ProtectCloud Object Storage 로부터의 Cloud Databases 승인
역할 소스 대상 유형
독자 Cloud Object Storage 서비스 Key Protect 서비스 작성자<cloud-databases-crn>

키 제거

IAM/Key Protect가 키와 Cloud Object Storage(두 번째 예) 간 정책을 제거하는 것을 막지는 않지만, 제거하면 백업을 복원할 수 없습니다. 이를 방지하기 위해서는, Cloud Object Storage의 키를 사용하는 Cloud Databases의 기능을 통제하는 Cloud Object Storage 정책을 삭제하는 경우 배치를 계속해서 백업하도록 정책이 다시 작성됩니다.

키 및 권한을 제거할 때 주의하십시오. 동일한 키를 사용하는 여러 배치가 있는 경우, 실수로 위임 권한을 취소하여 모든 해당 배치에 대한 백업을 영구 삭제할 수도 있습니다. 가능하다면, 여러 배포의 백업에 동일한 키를 사용하지 마십시오.

백업을 완전히 제거하려는 경우 키를 삭제할 수 있습니다. Cloud Object Storage는 스토리지를 읽을 수 없고 쓸 수 없는지 확인합니다. 그러나 동일한 키를 백업에 사용하는 다른 배포 환경에서는 이후 백업 작업이 실패하게 됩니다.

다중 배치의 백업에 동일한 키를 사용해야 하는 경우, 키 및 권한을 제거하면 다음과 같은 부작용이 발생할 수 있습니다.

  • Cloud Object Storage 권한(표 2에 표시됨)을 삭제하는 경우 작성자가 영향을 받은 것으로 표시되는 배치뿐만 아니라 동일한 키를 사용하는 모든 배치도 영향을 받습니다. 이러한 배치에서는 정책이 자동으로 다시 작성될 때까지 임시 백업 실패가 나타날 수 있습니다. 누락된 백업을 제외하고 지속적인 영향은 없습니다.
  • 만약 귀하가 생성한 위임자 권한(표 Cloud Databases 1 참조)만 삭제한다면, 두 번째 권한이 여전히 유효하기 때문에 즉시 문제가 발생하지는 않습니다. 하지만 Cloud Object Storage 권한을 제거한 경우 다시 작성할 수 없으며 동일한 키를 사용하는 여러 배치에서 백업 기능이 상실될 수 있습니다.
  • Cloud Object Storage 권한 Cloud Databases 위임자 권한을 둘 다 삭제하면, 동일한 키를 사용하는 모든 배치에서 즉시 백업 기능이 사라지고 올바른 권한을 다시 작성할 수 없으며 이 키를 사용하는 모든 배치에 대한 백업이 효율적으로 영구 삭제됩니다.

키를 재사용하는 경우 주의하십시오.