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