Oracle ZFS 스토리지 어플라이언스는 풀, 프로젝트 및 개별 공유(파일 시스템 및 LUN)에 대해 투명한 데이터 암호화를 제공합니다. 어플라이언스는 내장 로컬 키 저장소를 포함하며, 또한 OKM(Oracle Key Manager) 및 KMIP(키 관리 상호 운용성 프로토콜) 암호화를 지원합니다. 암호화된 각 프로젝트 또는 공유에는 로컬, OKM 또는 KMIP 키 저장소의 래핑 키가 필요합니다. 데이터 암호화 키는 스토리지 어플라이언스에 의해 관리되며 래핑 키에 의해 암호화되어 영구적으로 저장됩니다.
암호화된 풀, 프로젝트 또는 공유를 만들려면 암호화 키를 만들어야 합니다.
풀이 만들어지기 전 키 저장소가 구성되어야 하므로 초기 시스템 구성 시 또는 공장 초기화 재설정 후 암호화된 풀을 만들 수 없습니다.
암호화된 풀의 공유 또는 프로젝트에 대해 복제를 설정하기 전에 소스에서 사용된 암호화 키를 대상에서도 사용할 수 있는지 확인합니다.
다음 표에서는 암호화 키를 관리하는 데 사용할 수 있는 RESTful API 요청에 대해 설명합니다. 테이블에서 keystore의 값은 local, okm 또는 kmip입니다. key의 값은 keyname 등록 정보의 값입니다. 키 등록 정보는 암호화 키 나열에서 설명됩니다.
|
로컬 키 저장소를 구성하려면 마스터 문장암호를 설정합니다. 로컬 키 저장소의 경우 master_passphrase는 나열하거나 수정할 수 있는 유일한 등록 정보입니다.
master_passphrase가 설정되었는지 여부를 확인합니다.
GET /api/storage/v2/encryption/local HTTP/1.1
출력:
HTTP/1.1 200 OK Content-Type: application/json { "keystore": { "href": "/api/storage/v2/encryption/local", "master_passphrase": false, "keys": [] } }
master_passphrase에 대한 값을 지정합니다.
PUT /api/storage/v2/encryption/local HTTP/1.1 Host: zfs-storage.example.com:215 Content-Type: application/json Accept: application/json { "master_passphrase": "passphrase" }
master_passphrase가 설정되었는지 확인합니다.
GET /api/storage/v2/encryption/local HTTP/1.1
출력:
HTTP/1.1 200 OK Content-Type: application/json { "keystore": { "href": "/api/storage/v2/encryption/local", "master_passphrase": true, "keys": [] } }
다음 표에서는 OKM 키 저장소를 구성하기 위해 설정해야 하는 등록 정보에 대해 설명합니다.
|
위 등록 정보가 설정되었는지 여부를 확인합니다.
GET /api/storage/v2/encryption/okm HTTP/1.1
출력:
HTTP/1.1 200 OK Content-Type: application/json { "keystore": { "href": "/api/storage/v2/encryption/okm", "agent_id": "", "registration_pin": false, "server_addr": "", "keys": [] } }
agent_id, registration_pin 및 server_addr에 대한 값을 지정합니다.
PUT /api/storage/v2/encryption/okm HTTP/1.1 Host: zfs-storage.example.com:215 Content-Type: application/json Accept: application/json { "agent_id": "agent-id", "registration_pin": "reg-pin", "server_addr": "ipaddr" }
KMIP 키 저장소는 Oracle Key Vault를 포함하여 KMIP 호환 서버와 함께 사용됩니다. Oracle Key Vault는 전용 서버에 설치되고 OASIS KMIP 표준을 지원하는 소프트웨어 어플라이언스입니다.
KMIP를 사용하여 암호화를 구성하려면 키 또는 인증서 업로드에 설명된 대로 KMIP 관리자로부터 받은 키 및 인증서를 업로드합니다.
키 및 인증서를 업로드한 후 KMIP 서버, 클라이언트 인증서 및 키 이름을 지정합니다.
다음 표에서는 KMIP 키 저장소를 구성하기 위해 설정할 등록 정보에 대해 설명합니다.
|
host_match 및 destroy_key_on_remove에 대한 자세한 내용은 Oracle ZFS Storage Appliance Administration Guide, Release OS8.8.x의 "Key Management Interoperability Protocol (KMIP) Keystore"를 참조하십시오.
위 등록 정보가 설정되었는지 여부를 확인합니다.
GET /api/storage/v2/encryption/kmip HTTP/1.1
출력:
HTTP/1.1 200 OK Content-Type: application/json { "keystore": { "href": "/api/storage/v2/encryption/kmip", "server_list": [ "ipaddr-or-hostname" ], "client_cert": "134a9138-29a0-4720-80bb-ec2b13457c39", "host_match": false, "destroy_key_on_remove": true, "keys": [], ... detailed information about the private key, certificate, and certificate authority ... } }
키 저장소가 구성된 후 키를 만들려는 경우 키 이름을 설정하면 됩니다. 다음 예에서는 새 KMIP 키를 만듭니다. 예제 결과는 암호화 키 나열를 참조하십시오.
요청 예:
POST /api/storage/v2/encryption/kmip/keys HTTP/1.1 Host: zfs-storage.example.com:215 Authorization: Basic Tm8gcGVla2luZyE= Content-Type: application/json Accept: application/json { "keyname": "atz-1-27-2021" }
이 명령은 모든 암호화 키의 등록 정보를 나열합니다. 성공한 명령에 대해 HTTP 상태 200(OK)이 반환됩니다. HTTP 본문에는 JSON 형식의 키 배열이 포함되어 있습니다. 다음 표에서는 암호화 키 등록 정보에 대해 설명합니다.
|
다음 예에서는 모든 로컬, OKM 및 KMIP 키를 나열합니다.
요청 예:
GET /api/storage/v2/encryption/local/keys /api/storage/v2/encryption/okm/keys /api/storage/v2/encryption/kmip/keys HTTP/1.1
결과 예:
이 결과에 따라 이 어플라이언스에 로컬 또는 OKM 키가 없고 KMIP 키가 하나만 있음을 알 수 있습니다.
{ "keys": { } } { "keys": { } } { "keys": [{ "cipher": "AES", "keyname": "atz-1-27-2021", "href": "/api/storage/v2/encryption/kmip/keys/key-000" }] }
dependents 질의는 지정된 키로 암호화된 모든 공유, 프로젝트 또는 풀을 나열합니다.
다음 예에서는 기본 풀의 fs-enc 파일 시스템만 atz-1-27-2021 KMIP 키로 암호화되는 것을 보여줍니다.
요청 예:
GET /api/storage/v2/encryption/kmip/keys/atz-1-27-2021/dependents HTTP/1.1
결과 예:
{ "dependents": [ "pool-0/local/default/fs-enc" ] }
키를 삭제하려면 키의 href 등록 정보에 대한 값(키 이름 아님)을 사용합니다. 성공한 삭제는 HTTP 상태 204(No Content)를 반환합니다.
키가 삭제되면 해당 키를 사용하는 모든 풀과 공유의 모든 데이터에 액세스할 수 없게 됩니다. 이 동작은 보안 데이터 삭제와 동일하며 키를 백업하여 키 복원을 준비하지 않는 한, 영구적으로 액세스할 수 없게 되며 이는 되돌릴 수 없습니다.
요청 예:
DELETE /api/storage/v2/encryption/kmip/keys/key-000 HTTP/1.1 Host: zfs-storage.example.com:215 Accept: application/json