Key Protect 키 목록 가져오기

IBM® Key Protect for IBM Cloud®는 암호화 키를 확인, 관리, 감사할 수 있는 중앙 집중식 시스템을 제공합니다. 리소스의 보안을 강화하기 위해 키와 키에 대한 접근 제한 사항을 점검하십시오.

단일 키에 세분화된 액세스 권한을 할당합니다 키 목록 API 에서는 개별 액세스 권한이 있는 키를 반환하지 않습니다. 즉, 본인만 액세스할 수 있는 키는 반환하지 않습니다. 그러나 이 API를 호출하면 액세스 권한이 있는 키 링의 키를 반환합니다. 인스턴스의 모든 키에 액세스할 수 있는 경우 모든 키를 볼 수 있습니다. IAM을 통해 세분화된 액세스 키 보기의 안내에 따라 개별 액세스 권한이 있는 키를 볼 수 있습니다. 또는 API를 사용하여 특정 키 ID를 전달할 수도 있습니다.

정기적으로 키 구성을 감사하는 것이 좋습니다.

리소스에 대한 액세스 감사에 대한 자세한 정보는 사용자 액세스 관리를 참조하십시오.

콘솔에서 키 보기

그래픽 인터페이스를 사용한 서비스의 키 검사를 원하는 경우 Key Protect 대시보드를 사용할 수 있습니다.

키를 작성하거나 기존 키를 서비스로 가져온 후 다음 단계를 완료하여 키를 확인하십시오.

  1. IBM Cloud 콘솔에 로그인하세요.

  2. 메뉴 > 리소스 목록으로 이동하여 리소스 목록을 보십시오.

  3. IBM Cloud 리소스 목록에서 Key Protect의 프로비저닝된 인스턴스를 선택하십시오.

  4. ‘키’를 클릭하면 서비스 인스턴스에 있는 모든 키의 목록을 확인할 수 있습니다. 다음과 같은 방법으로 테이블 뷰를 관리할 수 있습니다

    • 키 필터링- 테이블 필터 패널의 드롭다운 목록을 사용하여 키 상태 (예: 활성화됨 ) 또는 키링 ID별로 필터링할 수 있습니다.
    • 정렬 기준- 열 머리글을 클릭하면 ‘마지막 회전 날짜 ’와 같은 값을 기준으로 정렬할 수 있습니다.
    • 검색 키- 검색 창을 사용하여 표시 이름, 키 ID 또는 별칭으로 검색할 수 있습니다. 특정 키를 빠르게 찾으려면 키 ID로 검색하세요.
    • 열 사용자 지정- ‘설정’ 버튼을 클릭하여 표시할 열을 선택하세요.

    기본적으로 테이블에는 다음 열이 표시됩니다:

키 테이블에 대해 설명합니다.
컬럼 설명
이름 키에 지정한 표시 이름입니다.
키 ID Key Protect 서비스에서 키에 지정한 고유 키 ID입니다. 이 ID 값을 사용하여 Key Protect API 를 통해 서비스에 요청을 보낼 수 있습니다.
키 링 ID 키가 연결된 키 링입니다. 이러한 상태에는 비활성화됨, 삭제됨, 사용 안 함 및 사용됨이 포함됩니다.
마지막 순환 날짜 키가 마지막으로 교체된 날짜.
키 별명 키의 하나 이상의 키 별명입니다.
유형 키의 키 유형(루트 키 또는 표준 키)입니다.
상태 키의 상태는 ‘비활성화됨’, ‘삭제됨’, ‘사용 중지됨 ’ 또는 ‘활성화됨’ 중 하나입니다.

테이블에서 사용 가능한 기타 필드는 다음과 같습니다.

  • 마지막 수정: 키를 어떤 식으로든 마지막으로 변경한 시간을 나타냅니다.
  • 생성일: 키가 생성된 날짜.
  • 삭제됨: 키가 삭제됨 상태 (제거 대기 중) 에 있는지 여부를 표시합니다.
  • 가져오기: 사용자가 제공한 키 자료를 사용하여 키를 만들었는지 여부를 나타냅니다.
  • 로테이션 정책: 이 키에 로테이션 정책이 첨부되어 있는지 여부를 표시합니다.
  • 연관된 자원: 키가 자원을 보호하는지 여부를 표시합니다.

검색 기능은 5,000개의 키 볼륨으로 제한됩니다. 키가 5,000개 이상이고 그 수를 5,000개 미만으로 필터링할 수 없는 경우, 키 ID 또는 별칭과 정확히 일치하지 않으면 검색이 실패합니다. 예를 들어 키 상태별로 필터링하여 Enabled 키만 표시할 수 있습니다. 키 검색에 대한 API 사양에 대한 자세한 내용은 GET /keys를 참조하십시오.

검색 결과의 수를 줄이고 싶다면, 다음 매개변수 중 하나 또는 여러 가지를 조합하여 적용해 보세요:

  • not: 이 옵션이 지정되면 검색에 사용되는 논리가 반전됩니다(예를 들어, not:foo 은 별칭이나 이름에 foo``이 포함되지 않은 키를 검색합니다).
  • escape: 이 옵션 이후의 모든 항목은 일반 텍스트로 간주됩니다(예: escape:not: 하위 문자열 not:)이 포함된 별칭 또는 이름을 가진 키를 검색합니다.
  • exact:은(는) 정확한 일치만 검색합니다.
  • alias:은(는) 키 별명만 검색합니다.
  • name:은(는) 키 이름만 검색합니다.

not:exact:foobar 는 키 이름 또는 별칭이 정확히 foobar아닌 키를 찾고, exact:not:foobar 은 키 이름 또는 별칭이 정확히 not:foobar 인 키를 찾습니다.

검색 범위는 OR 방식으로 작동합니다. 즉, 두 개 이상의 검색 범위를 사용할 경우, 해당 범위 중 적어도 하나에서 일치하는 결과가 있으면 해당 키가 반환된다는 의미입니다. 기본적으로(범위가 제공되지 않은 경우) namealias 범위 둘 다에서 검색이 수행됩니다.

Key Protect 인스턴스에 저장된 전체 키 목록이 표시되지 않습니까? 관리자에게 문의하여 해당 Key Protect 인스턴스 또는 개별 키에 대해 올바른 역할이 할당되었는지 확인하십시오. 역할에 대한 자세한 정보는 역할 및 권한을 참조하십시오.

상태별 키 검색

Key Protect 인스턴스에서 특정 키의 상태를 필터링하여 지정한 상태의 키를 검색할 수 있습니다.

예를 들어, Key Protect 인스턴스에 활성, 일시중단됨 및 삭제됨 상태의 키가 있을 수 있지만, 키 목록을 검색할 때 활성 상태의 키만 검색하려고 합니다.

키 상태에 대한 자세한 정보는 키 상태 및 상태 전이를 참조하십시오.

키를 작성하거나 기존 키를 서비스로 가져오고 나면 키를 볼 수 있는 두 가지 옵션이 있습니다. 첫 번째 옵션인 리소스 목록을 통한 키 보기는 세분화된 액세스 권한이 있는 키를 제외한 모든 키에 대해 작동합니다. 세분화된 액세스 권한이 있는 키 보기에 대한 자세한 내용은 세분화된 액세스 권한 키 IAM 보기를 참조하세요.

리소스 목록을 통해 키 보기

  1. IBM Cloud 콘솔에 로그인하세요.

  2. 메뉴 > 리소스 목록으로 이동하여 리소스 목록을 보십시오.

  3. IBM Cloud 리소스 목록에서 Key Protect의 프로비저닝된 인스턴스를 선택하십시오.

  4. ‘키’ 페이지에서 필터 아이콘을 클릭하여 필터 패널을 엽니다.

  5. '상태' 드롭다운 메뉴에서 검색하려는 키의 주요 상태를 선택하십시오.

  6. 적용 단추를 클릭하십시오.

  7. 또한 테이블 행 표제에서 Last updated 을 클릭하여 테이블의 키가 가장 최근에 업데이트된 날짜별로 목록을 정렬하거나 Type 을 클릭하여 모든 루트 키 및 표준 키를 그룹으로 나열할 수 있습니다.

IAM을 통해 세분화된 액세스 키 보기

  1. 메뉴 표시줄에서 관리 > **액세스(IAM)**를 클릭하고 사용자를 선택하여 계정의 기존 사용자를 찾아보십시오.

  2. 테이블 행을 선택하고 ⋯ 아이콘을 클릭하여 특정 사용자에 대한 옵션 목록을 여십시오. 그런 다음 드롭 다운 목록에서 액세스 관리를 선택하십시오.

  3. 여기에서는 해당 사용자가 속한 액세스 그룹을 포함하여, 이 사용자에 대한 모든 IAM 정보를 확인할 수 있습니다. 이 사용자에 대한 액세스 정책을 구체적으로 확인하려면 액세스 정책 탭을 클릭하십시오.

계정 소유자나 적절한 권한을 가진 사용자는 키에 대한 세분화된 액세스 권한을 포함하여, 해당 사용자에게 할당된 모든 정책을 확인할 수 있습니다.

API로 키 보기

Key Protect API를 사용하여 키의 컨텐츠를 검색할 수 있습니다.

키 목록 검색

상위 레벨 보기의 경우에는 다음 엔드포인트에 대한 GET 호출을 작성하여 Key Protect의 프로비저닝된 인스턴스에서 관리되는 키를 찾아볼 수 있습니다.

https://<region>.kms.cloud.ibm.com/api/v2/keys
  1. 인증 정보를 검색하여 서비스에서 키에 대한 작업을 수행하십시오.

  2. 다음 curl 명령을 실행하여 키에 대한 일반 특성을 보십시오.

    $ curl -X GET \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys" \
        -H "accept: application/vnd.ibm.collection+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "x-kms-key-ring: <key_ring_ID>" \
        -H "correlation-id: <correlation_ID>"
    

    표 1의 정보에 따라 예제 요청의 변수를 바꾸십시오. 키 검색 기능을 포함하여 키 콜렉션을 볼 때 사용 가능한 선택적 매개변수에 대한 자세한 정보는 List keys 메소드에 대한 API 문서를 참조하십시오.

표 1. Key Protect API로 키를 보는 데 필요한 변수
가변 설명
지역 필수. Key Protect 인스턴스가 상주하는 지리적 영역을 표시하는 지역 약어(예: us-south 또는 eu-gb)입니다. 자세한 정보는 지역 서비스 엔드포인트를 참조하십시오.
key_ID_or_alias 필수. 검사할 키의 고유 ID 또는 별명입니다.
IAM_token 필수. 사용자의 IBM Cloud 액세스 토큰입니다. curl 요청에 Bearer 값을 포함하여 IAM 토큰의 전체 컨텐츠를 포함하십시오. 자세한 정보는 액세스 토큰 검색을 참조하십시오.
instance_ID 필수. Key Protect 서비스 인스턴스에 지정된 고유 ID입니다. 자세한 정보는 인스턴스 ID 검색을 참조하십시오.
key_ring_ID 선택사항. 대상 키 링의 고유 ID입니다. 별도로 지정하지 않은 경우, 응답에는 사용자가 지정된 인스턴스에서 액세스할 수 있는 모든 리소스가 포함됩니다. 응답이 제공되는 경우, 해당 응답에는 사용자가 지정된 키링에서 액세스 권한을 가진 리소스만 포함됩니다. 자세한 정보는 키 그룹화를 참조하십시오.
correlation_ID 선택사항. 트랜잭션을 추적하고 상관시키는 데 사용되는 고유 ID입니다.

성공한 GET api/v2/keys 요청은 Key Protect 서비스 인스턴스에서 사용 가능한 키의 콜렉션을 리턴합니다.

{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.key+json",
        "collectionTotal": 2
    },
    "resources": [
        {
            "id": "02fd6835-6001-4482-a892-13bd2085f75d",
            "type": "application/vnd.ibm.kms.key+json",
            "name": "Root-key",
            "state": 1,
            "crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
            "createdBy": "...",
            "creationDate": "2020-03-11T16:30:06Z",
            "lastUpdateDate": "2020-03-11T16:30:06Z",
            "algorithmMetadata": {
                "bitLength": "256",
                "mode": "Deprecated"
            },
            "extractable": false,
            "imported": true,
            "algorithmMode": "Deprecated",
            "algorithmBitSize": 256,
            "dualAuthDelete": {
                "enabled": false
            }
        },
        {
            "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
            "type": "application/vnd.ibm.kms.key+json",
            "name": "Standard-key",
            "state": 1,
            "expirationDate": "2020-03-14T03:50:12Z",
            "crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:30372f20-d9f1-40b3-b486-a709e1932c9c:key:2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
            "createdBy": "...",
            "creationDate": "2020-03-12T03:50:12Z",
            "lastUpdateDate": "2020-03-12T03:50:12Z",
            "algorithmMetadata": {
                "bitLength": "256",
                "mode": "Deprecated"
            },
            "extractable": true,
            "imported": false,
            "algorithmMode": "Deprecated",
            "algorithmBitSize": 256,
            "dualAuthDelete": {
                "enabled": false
            }
        }
    ]
}

기본적으로 GET api/v2/keys는 처음 200개의 키를 리턴하지만 조회 시 limit 매개변수를 사용하여 이 한계를 조정할 수 있습니다. limitoffset에 대해 자세히 보려면 키의 서브세트 검색을 참조하십시오.

키의 전체 목록이 표시되지 않습니까? limitoffset 를 참조하거나 관리자에게 문의하여, 해당 인스턴스의 키에 대해 올바른 수준의 액세스 권한이 할당되었는지 확인해야 할 수도 있습니다. 자세히 알아보려면 키를 보거나 나열할 수 없음을 참조하십시오.

키의 서브세트 검색

조회 시 limitoffset 매개변수를 지정하면 지정하는 offset 값부터 시작하여 키의 서브세트를 검색할 수 있습니다.

예를 들어, Key Protect 인스턴스에 저장된 총 3000개의 키가 있지만 GET /keys 요청을 작성할 때 200 - 300 키를 검색하려고 합니다.

다음 예제 요청을 사용하여 다른 키 세트를 검색할 수 있습니다.

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys?offset=<offset>&limit=<limit>" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

다음 표에 따라 요청의 limitoffset 변수를 대체하십시오.

표 2. 제한 및 오프셋 변수 사용
가변 설명
offset 건너뛸 키의 수입니다. 예를 들어, 인스턴스에 50개의 키가 있고 26번부터 50번까지의 키를 나열하려면 ../keys?offset=25 를 사용하면 됩니다. 사용 가능한 리소스를 통해 페이지 제한과 오프셋을 쌍으로 구성할 수도 있습니다.
한계 검색할 키의 수입니다. 예를 들어, 인스턴스에 100개의 키가 있는데 그중 10개만 나열하고 싶다면 ../keys?limit=10 를 사용하세요. 한계의 최대값은 5000입니다.

오프셋은 데이터 세트에 있는 특정 키의 위치입니다. offset 값은 0부터 시작합니다. 즉, 데이터 세트의 열 번째 암호화 키는 오프셋 9에 있습니다.

상태별 키 검색

조회 시 state 매개변수를 지정하여 지정하는 상태의 키를 검색할 수 있습니다.

예를 들어, Key Protect 인스턴스에 활성, 일시중단됨 및 영구 삭제됨 상태의 키가 있을 수 있지만 GET /keys 요청을 작성할 때 활성 상태의 키만 검색하려고 합니다.

상태 조회 매개변수는 공백 또는 후행 쉼표 없이 쉼표로 구분된 0 - 5 사이의 정수 목록에 포함됩니다. 키 상태에 대한 자세한 정보는 키 상태 및 상태 전이를 참조하십시오.

다음 예제 요청을 사용하여 다른 키 세트를 검색할 수 있습니다.

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys?state=<state_integers>" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

다음 표에 따라 요청의 state 변수를 대체하십시오.

표 3. 상태 변수
가변 설명
상태 검색할 키의 상태입니다. 상태는 정수로, ‘활성화 전’은 0, ‘활성화’는 1, ‘일시 중지’는 2, ‘비활성화’는 3, ‘파괴’는 5로 표시됩니다. 예를 들어, Key Protect 인스턴스에서 ‘활성’ 상태인 키만 나열하려면 ../keys?state=1 를 사용하세요. 사용 가능한 리소스를 통해 페이지 제한 및 오프셋과 상태를 쌍으로 구성할 수도 있습니다.

사용법 참고사항은 state 조회 매개변수 설정에 대한 다음 예제를 확인하십시오.

표 4. 상태 쿼리 매개변수에 대한 사용 참고 사항
URL 설명
.../keys 처음 200개의 키까지 사용 가능한 모든 리소스를 나열합니다.
.../keys?state=5 삭제됨 상태의 키를 나열합니다.
.../keys?state=2,3 일시중단됨 및 비활성화됨 상태의 키를 나열합니다.

추출 가능한 값별로 키 검색

조회 시 extractable 매개변수를 지정하여 서비스를 종료할 수 있는 자료가 있는 키를 검색할 수 있습니다.

예를 들어, Key Protect 인스턴스에 표준 키와 루트 키가 모두 있을 수 있지만 GET /keys 요청을 할 때 추출 가능한 키 자료가 있는 키만 검색하려고 합니다.

추출 가능한 조회 매개변수는 부울을 사용합니다.

다음 예제 요청을 사용하여 다른 키 세트를 검색할 수 있습니다.

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys?extractable=<extractable>" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

다음 표에 따라 요청의 extractable 변수를 대체하십시오.

표 5. 추출 가능한 변수
가변 설명
extractable 검색할 키의 유형입니다. 추출 가능 특성을 기반으로 키를 필터링합니다. 이 조회 매개변수를 사용하여 서비스를 종료할 수 있는 자료가 있는 키를 검색할 수 있습니다. true 로 설정하면 표준 키가 반환됩니다. false 로 설정하면 루트 키가 검색됩니다. 생략할 경우, 루트 키와 표준 키가 모두 검색됩니다. 예를 들어, Key Protect 인스턴스에서 추출 가능한 소재가 포함된 키만 나열하려면 ../keys?extractable=true 를 사용하세요. 사용 가능한 리소스를 통해 offset, limitstate와 추출 가능도 쌍으로 연결할 수 있습니다.

사용법 참고사항은 extractable 조회 매개변수 설정에 대한 다음 예제를 확인하십시오.

표 6. 추출 가능한 쿼리 매개변수에 대한 사용 참고 사항
URL 설명
../keys 처음 200개의 키까지 사용 가능한 모든 리소스를 나열합니다.
../keys?extractable=true 표준 키를 나열합니다.
../keys?extractable=false 루트 키를 나열합니다.

키 목록 정렬하기

하나 이상의 키 특성을 기반으로 리턴된 조회 문자열 키 목록을 정렬합니다. 에서 sort 매개변수를 사용합니다. 속성을 내림차순으로 정렬하려면 용어 앞에 "-"를 붙입니다. 여러 개의 주요 속성을 정렬하려면 쉼표를 사용하여 각 속성을 구분합니다. 쉼표로 구분된 목록의 첫 번째 속성이 다음 속성보다 먼저 평가됩니다.

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys?sort=<sort-value>" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"
표 7. 정렬 쿼리 매개변수에 대한 사용 참고 사항
가변 설명
정렬 값 정렬을 위한 특성 목록입니다. 현재 정렬할 수 있는 주요 속성은 다음과 같습니다: id, state, extractable, imported, creationDate, lastUpdateDate, lastRotateDate, deletionDate, expirationDate 입니다.