Go to main content

Oracle® ZFS Storage Appliance RESTful API 설명서, 릴리스 OS8.8.x

인쇄 보기 종료

업데이트 날짜: 2021년 8월
 
 

암호화 키 관리


주 -  암호화는 특정 모델에 대해 사용이 허가된 기능입니다. 자세한 내용은 "Oracle SLA(소프트웨어 라이센스 계약) 및 통합된 소프트웨어 옵션을 사용하는 하드웨어 시스템에 대한 자격" 및 소프트웨어 릴리스의 라이센스 정보 사용자 설명서를 참조하십시오.

Oracle ZFS 스토리지 어플라이언스는 풀, 프로젝트 및 개별 공유(파일 시스템 및 LUN)에 대해 투명한 데이터 암호화를 제공합니다. 어플라이언스는 내장 로컬 키 저장소를 포함하며, 또한 OKM(Oracle Key Manager) 및 KMIP(키 관리 상호 운용성 프로토콜) 암호화를 지원합니다. 암호화된 각 프로젝트 또는 공유에는 로컬, OKM 또는 KMIP 키 저장소의 래핑 키가 필요합니다. 데이터 암호화 키는 스토리지 어플라이언스에 의해 관리되며 래핑 키에 의해 암호화되어 영구적으로 저장됩니다.

암호화된 풀, 프로젝트 또는 공유를 만들려면 암호화 키를 만들어야 합니다.

  • 풀이 만들어지기 전 키 저장소가 구성되어야 하므로 초기 시스템 구성 시 또는 공장 초기화 재설정 후 암호화된 풀을 만들 수 없습니다.

  • 암호화된 풀의 공유 또는 프로젝트에 대해 복제를 설정하기 전에 소스에서 사용된 암호화 키를 대상에서도 사용할 수 있는지 확인합니다.

다음 표에서는 암호화 키를 관리하는 데 사용할 수 있는 RESTful API 요청에 대해 설명합니다. 테이블에서 keystore의 값은 local, okm 또는 kmip입니다. key의 값은 keyname 등록 정보의 값입니다. 키 등록 정보는 암호화 키 나열에서 설명됩니다.

표 67  암호화 키 작업
요청
경로 /api/storage/v{1|2}에 추가
설명
GET
/encryption/keystore
모든 keystore 등록 정보를 나열합니다.
PUT
/encryption/keystore
keystore 등록 정보를 수정합니다.
GET
/encryption/keystore/keys
모든 keystore 키를 나열합니다.
GET
/encryption/keystore/keys/key
지정된 키에 대한 세부정보를 가져옵니다.
POST
/encryption/keystore/keys
키를 만듭니다.
DELETE
/encryption/keystore/keys/key
키를 삭제합니다.
GET
/encryption/keystore/keys/key/dependents
이 키에 종속된 공유를 나열합니다.

로컬 키 저장소 구성

로컬 키 저장소를 구성하려면 마스터 문장암호를 설정합니다. 로컬 키 저장소의 경우 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 키 저장소 구성

다음 표에서는 OKM 키 저장소를 구성하기 위해 설정해야 하는 등록 정보에 대해 설명합니다.

표 68  OKM 키 저장소 등록 정보
등록 정보
유형
설명
agent_id
string
에이전트 ID입니다.
registration_pin
string
이 값은 OKM 보안 책임자가 제공합니다.
server_addr
string
OKM 서버의 IP 주소입니다.

위 등록 정보가 설정되었는지 여부를 확인합니다.

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_pinserver_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 키 저장소 구성

KMIP 키 저장소는 Oracle Key Vault를 포함하여 KMIP 호환 서버와 함께 사용됩니다. Oracle Key Vault는 전용 서버에 설치되고 OASIS KMIP 표준을 지원하는 소프트웨어 어플라이언스입니다.

KMIP를 사용하여 암호화를 구성하려면 키 또는 인증서 업로드에 설명된 대로 KMIP 관리자로부터 받은 키 및 인증서를 업로드합니다.

키 및 인증서를 업로드한 후 KMIP 서버, 클라이언트 인증서 및 키 이름을 지정합니다.

다음 표에서는 KMIP 키 저장소를 구성하기 위해 설정할 등록 정보에 대해 설명합니다.

표 69  KMIP 키 저장소 등록 정보
등록 정보
유형
설명
server_list
list
KMIP 서버의 IP 주소 또는 호스트 이름입니다. 이 등록 정보는 여러 값을 포함할 수 있습니다.
client_cert
string
KMIP 서버 관리자가 제공한 파일로부터 만든 인증서입니다.
host_match
boolean
서버 인증서의 서버 ID에 대해 서버 호스트 이름을 검증합니다.
destroy_key_on_remove
boolean
어플라이언스에서 키가 삭제될 때 KMIP 서버에서 키를 삭제하거나 보존합니다.

host_matchdestroy_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 형식의 키 배열이 포함되어 있습니다. 다음 표에서는 암호화 키 등록 정보에 대해 설명합니다.

표 70  암호화 키 등록 정보
등록 정보
유형
설명
cipher
string
AES 암호화 유형입니다.
key
string
(로컬만) 암호화된 형식으로 저장되는 16진수로 인코딩된 원시 256비트 키입니다. 값을 지정하지 않을 경우 자동으로 이 값이 생성됩니다.
keyname
string
특정 키입니다.
href
string
키에 대한 경로입니다.

다음 예에서는 모든 로컬, 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