키 링을 사용하여 키 그룹화

IBM® Key Protect for IBM Cloud®을(를) 사용하여 동일한 IAM 액세스 권한이 필요한 사용자의 대상 그룹에 대한 키 그룹을 작성할 수 있습니다.

계정 관리자는 "키 링"이라는 그룹으로 Key Protect 서비스 인스턴스의 키를 번들링할 수 있습니다. 키 링은 서비스 인스턴스 내에서 모두 동일한 IAM 액세스 권한이 필요한 키의 콜렉션입니다. 예를 들어, 특정 키 그룹에 대한 특정 액세스 유형이 필요한 팀 구성원 그룹이 있는 경우 해당 키에 대한 키 링을 작성하고 대상 사용자 그룹에 적절한 IAM 액세스 정책을 지정할 수 있습니다. 키 링에 대한 액세스 권한이 지정된 사용자는 키 링 내에 존재하는 리소스를 작성하고 관리할 수 있습니다.

키 링은 한 비즈니스 단위에 다른 비즈니스 단위에 없는 키 세트에 대한 액세스 권한이 있는 것이 중요한 경우에도 유용합니다. 계정 관리자는 각각의 비즈니스 장치를 위한 키 링을 작성한 후 적절한 사용자에게 적절한 액세스 레벨을 지정할 수 있습니다. 계정 관리자가 특정 키 링의 플랫폼 관리 권한을 다른 사람에게 위임하고자 하는 경우, 해당 사용자에게 키 링 수준의 플랫폼 관리자 역할 를 할당할 수 있습니다. 이 경우 하위 관리자가 키 링을 관리하고 적절한 사용자에게 액세스 권한을 부여할 수 있게 됩니다.

액세스 권한을 Key Protect 인스턴스의 키 링에 IBM Cloud 콘솔, IAM API 또는 IAM CLI

Key Protect 인스턴스에 대한 키 링을 생성하기 전에 다음 고려 사항을 검토하십시오:

  • 모든 Key Protect 인스턴스는 기본 키 링과 함께 제공됩니다. 새로 작성된 각 Key Protect 인스턴스는 ID가 default인 생성된 키 링과 함께 제공됩니다. 달리 지정된 키 링과 연관되지 않은 모든 키는 기본 키 링에 있습니다.

  • 키 링은 표준 키와 루트 키를 보유할 수 있습니다. 키 링에는 표준 키와 루트 키가 모두 포함될 수 있습니다. 키 링에 있을 수 있는 키의 수에는 제한이 없습니다.

  • 키는 한 번에 한 키 링에만 속할 수 있습니다. 키는 하나의 키 링에만 속할 수 있습니다. 키 링 지정은 키 작성 시 수행됩니다. 작성 시 키 링 ID가 전달되지 않으면 키가 default 키 링의 일부가 됩니다.

최대 키 링 수는 서비스 인스턴스당 50개입니다.

UI를 사용하여 키 링 작성

키 링을 작성하려면 서비스 "작성자" 또는 "관리자" 역할이 있어야 합니다.

키 링을 작성하려면 다음을 수행하십시오.

  1. 왼쪽 탐색에서 키 링을 클릭하십시오.
  2. 키 링 패널에서 작성 단추를 클릭하십시오.
  3. 키 링 작성 탭에서 허용된 문자에 관한 지시사항에 따라 새 키 링의 이름으로 지정하십시오. 그런 다음 작성을 클릭하십시오.

새 키 링이 작성되면 키 링 목록에 표시되고 키 링에 키를 전송하거나 키를 작성할 수 있습니다.

여러 환경에서 일관되게 키링을 관리하는 경우 Key Protect 키링 모듈 또는 더 광범위한 Key Protect 올인클루시브 모듈을 사용하여 키링 및 키 레이아웃을 자동화할 수 있습니다. 자세한 내용은 테라폼 소개 IBM 모듈을 참조하세요.

API를 사용하여 키 링 작성

다음 엔드포인트에 대한 POST 호출을 작성하여 키 링을 작성하십시오.

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

  2. 다음 curl 명령을 실행하여 키 링을 작성하십시오.

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "correlation-id: <correlation_ID>"
    

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

Key Protect API를 사용하여 키링을 생성하는 데 필요한 변수들을 설명합니다.
가변 설명
지역 필수. us-south 또는 eu-gb 과 같은 지역 약어는 Key Protect 인스턴스가 위치한 지리적 영역을 나타냅니다.

자세한 내용은 ‘지역별 서비스 엔드포인트’를 참조하십시오.
key_ring_id 필수. 작성할 키 링의 고유 ID입니다.
IAM_token 필수. 사용자의 IBM Cloud 액세스 토큰입니다. curl 요청에 Bearer 값을 포함하여 IAM 토큰의 전체 컨텐츠를 포함하십시오.

자세한 내용은 ‘액세스 토큰 가져오기’를 참조하십시오.
instance_ID 필수. Key Protect 서비스 인스턴스에 지정된 고유 ID입니다.

자세한 내용은 “인스턴스 ID 가져오기”를 참조하십시오.
correlation_ID 선택사항. 트랜잭션을 추적하고 상관시키는 데 사용되는 고유 ID입니다.

POST api/v2/key_rings 요청이 성공하면 HTTP 201 Created 이 응답은 키 링이 생성되었으며, 이제 표준 키와 루트 키를 저장할 수 있음을 나타냅니다.

키를 다른 키 링으로 전송

요구사항이 변경되고 새 팀 구성원이 조직으로 이동되면 해당 조직 변경사항을 반영하도록 새 키 링을 작성할 수 있습니다. 키 링을 작성한 후 기존 키 링에서 다른 IAM 권한이 있는 새 키 링으로 키를 이동해야 할 수도 있습니다. 예를 들어 이전에 만든 기본이 아닌 사용자 정의 키 링의 일부인 키에 대한 특정 액세스 권한이 필요한 팀을 온보딩할 수 있습니다. 온보딩 팀 전용의 새 키 링을 작성할 수 있으며, 키는 한 번에 하나의 키 링과만 연관될 수 있으므로 키를 새 키 링으로 이동해야 합니다.

키를 다른 키링으로 옮긴 후, 해당 변경 사항이 모든 시스템에 반영되기까지 최대 10분이 소요될 수 있습니다.

UI를 사용하여 키를 다른 키 링으로 전송

예상한 모든 옵션이 표시되지 않으면 특정 조치를 실행할 수 있는 권한이 없기 때문일 수 있습니다. 역할 및 권한이 조치를 수행하기에 충분한지 확인하십시오. 역할에 대한 자세한 정보는 사용자 액세스 관리를 확인하십시오.

전송되는 키와 키를 전송할 대상 키 링 모두에 대해 서비스 "관리자" 역할이 있어야 합니다.

패널에서 다음을 수행하십시오.

  1. 전송할 키를 찾으십시오. 키를 더 쉽게 찾으려면 다음 방법 중 하나를 사용하세요:
    • ‘키’ 패널에서 ‘키 링 ID’ 필터에서 키 링을 선택합니다.
    • 왼쪽 탐색 메뉴에서 ‘키링’을 클릭한 다음, 해당 키링을 찾아 작업 메뉴(⋯)를 클릭하고 ‘키 보기’를 선택하세요.
  2. ⋯ 단추를 클릭하고 드롭 다운 목록에서 키 링 편집을 선택하십시오.
  3. 드롭 다운 목록에서 키를 이동할 키 링을 선택하십시오. 그런 다음 저장을 클릭하십시오.

API를 사용하여 키를 다른 키 링으로 전송

다음 엔드포인트에 대해 PATCH 호출을 수행하여 키를 다른 키 링으로 전송하십시오.

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

    키의 키 링을 업데이트하려면 키 및 대상 키 링에 대해 관리자 이상의 서비스 액세스 권한이 있어야 합니다. IAM 역할을 Key Protect 서비스 조치에 맵핑하는 방법을 알아보려면, 서비스 액세스 역할을 확인하십시오.

  2. 다음 curl 명령을 실행하여 키의 키 링을 업데이트하십시오.

    $ curl -X PATCH \
        https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias> \
        -H 'accept: application/vnd.ibm.kms.key+json' \
        -H 'authorization: Bearer <IAM_token>' \
        -H 'bluemix-instance: <instance_ID>' \
        -H 'content-type: application/vnd.ibm.kms.key+json' \
        -H "x-kms-key-ring: <original_key_ring_ID>" \
        -H "correlation-id: <correlation_ID>" \
        -d '{
        "keyRingID": "<new_key_ring_ID>"
        }'
    

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

Key Protect API를 사용하여 키의 키 링을 업데이트하는 데 필요한 변수들을 설명합니다.
가변 설명
지역 필수. us-south 또는 eu-gb 과 같은 지역 약어는 Key Protect 인스턴스가 위치한 지리적 영역을 나타냅니다.

자세한 내용은 ‘지역별 서비스 엔드포인트’를 참조하십시오.
keyID_or_alias 필수. 업데이트하려는 키의 고유 ID 또는 별명입니다.
IAM_token 필수. 사용자의 IBM Cloud 액세스 토큰입니다. curl 요청에 Bearer 값을 포함하여 IAM 토큰의 전체 컨텐츠를 포함하십시오.

자세한 내용은 ‘액세스 토큰 가져오기’를 참조하십시오.
instance_ID 필수. Key Protect 서비스 인스턴스에 지정된 고유 ID입니다.

자세한 내용은 “인스턴스 ID 가져오기”를 참조하십시오.
original_key_ring_ID 선택사항. 키가 현재 속해 있는 키 링의 고유 ID입니다. 지정되지 않은 경우 Key Protect은(는) 지정된 인스턴스와 연관된 모든 키 링에서 키를 검색합니다. 따라서 더 최적화된 요청을 위해 키 링 ID를 지정하는 것이 좋습니다. 참고: x-kms-key-ring 헤더 없이 작성된 키의 키 링 ID는 default입니다.
correlation_ID 선택사항. 트랜잭션을 추적하고 상관시키는 데 사용되는 고유 ID입니다.
new_key_ring_ID 필수. 키를 이동할 대상 키 링의 고유 ID입니다.

PATCH api/v2/keys/keyID_or_alias 요청에 성공하면 키가 속한 키 링의 ID를 포함하여 키의 메타데이터를 리턴합니다.

{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.key+json",
        "collectionTotal": 1
    },
    "resources": [
        {
            "type": "application/vnd.ibm.kms.key+json",
            "id": "02fd6835-6001-4482-a892-13bd2085f75d",
            "name": "test-root-key",
            "aliases": [
                "alias-1",
                "alias-2"
            ],
            "description": "A test root key",
            "state": 1,
            "extractable": false,
            "keyRingID": "new-key-ring",
            "crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
            "imported": false,
            "creationDate": "2020-03-12T03:37:32Z",
            "createdBy": "...",
            "algorithmType": "Deprecated",
            "algorithmMetadata": {
                "bitLength": "256",
                "mode": "Deprecated"
            },
            "algorithmBitSize": 256,
            "algorithmMode": "Deprecated",
            "lastUpdateDate": "2020-03-12T03:37:32Z",
            "keyVersion": {
                "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
                "creationDate": "2020-03-12T03:37:32Z"
            },
            "dualAuthDelete": {
                "enabled": false
            },
            "deleted": false
        }
    ]
}

키 링에 대한 액세스 권한 부여

IBM Cloud ( Key Protect ) 인스턴스 내의 키 링에 대한 액세스 권한은 콘솔( IAM API) 또는 CLI{ :external} 을 사용하여 부여할 수 있습니다.

역할 및 권한을 검토하여 IBM Cloud IAM 역할이 Key Protect 조치에 맵핑되는 방법을 알아보십시오.

콘솔을 사용하여 키 링에 대한 액세스 권한을 지정하려면 다음 작업을 수행하십시오.

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

  2. 테이블 행을 선택하고 ⋯ 아이콘을 클릭하여 특정 사용자에 대한 옵션 목록을 여십시오.

  3. 옵션 메뉴에서 액세스 권한 지정을 클릭하십시오.

  4. 사용자 추가 액세스 지정을 클릭하십시오.

  5. IAM 서비스 단추를 클릭하십시오.

  6. 서비스 목록에서 다음을 선택하십시오. Key Protect.

  7. 속성 기반 서비스를 선택하십시오.

  8. 인스턴스 ID 속성을 선택하고 키 링이 있는 인스턴스를 선택하십시오.

  9. 키 링 ID 속성을 선택한 후 키 링과 연관된 ID를 입력하십시오.

  10. 사용자에 대한 액세스 권한을 지정하려면 플랫폼 및 서비스 액세스 역할의 조합을 선택하십시오.

  11. 추가 를 클릭하십시오.

  12. 필요에 따라 계속해서 플랫폼 및 서비스 액세스 역할을 추가하고 완료되면 지정을 클릭하십시오. 인스턴스 내에서 키 링을 나열하고, 작성 및 삭제하려면 전체 인스턴스에 대한 독자 이상의 액세스 권한이 사용자에게 지정되어야 합니다.

이 이미지는 사용자에게 키링에 대한 접근 권한을 부여하는 방법을 보여주는 예시입니다.
인스턴스에 대한 사용자 액세스 권한을 부여하는 방법을 보여줍니다.

API를 사용하여 키 링 나열

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

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

  2. 다음 명령을 실행하여 키링의 일반적인 특성을 확인하세요 curl명령의 JSON 키 및 값에 대한 설명입니다.

    $ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/key_rings?totalCount=<show_total>&offset=<offset_value>&limit=<offset_limit>" \
        -H "accept: application/vnd.ibm.kms.key_ring+json" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "correlation-id: <correlation_ID>"
    

    물음표(?) 뒤에 오는 쿼리 매개변수는 선택적이지만, 이 매개변수의 사용을 문서화하기 위해 여기에 포함됩니다. (: :note).

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

Key Protect API를 사용하여 키링을 확인하는 데 필요한 변수들을 설명합니다.
가변 설명
지역 필수. us-south 또는 eu-gb 과 같은 지역 약어는 Key Protect 인스턴스가 위치한 지리적 영역을 나타냅니다.

자세한 내용은 ‘지역별 서비스 엔드포인트’를 참조하십시오.
IAM_token 필수. 사용자의 IBM Cloud 액세스 토큰입니다. curl 요청에 Bearer 값을 포함하여 IAM 토큰의 전체 컨텐츠를 포함하십시오.

자세한 내용은 ‘액세스 토큰 가져오기’를 참조하십시오.
instance_ID 필수. Key Protect 인스턴스에 할당된 고유 식별자입니다.

자세한 내용은 “인스턴스 ID 가져오기”를 참조하십시오.
correlation_ID 선택사항. 트랜잭션을 추적하고 상관시키는 데 사용되는 고유 ID입니다.
offset_limit 선택사항. 기본적으로, GET /key_rings에서는 기본 키 링을 포함하여 51개 키 링의 시퀀스를 리턴합니다. 다른 키 링 세트를 검색하려면, offset(과)와 함께 limit을(를) 사용하여 사용 가능한 자원을 페이징하십시오. limit의 최대값은 '5,000'입니다.
offset_value 선택사항. offset을(를) 지정하면 offset 값에서 시작하는 키 링의 서브세트를 검색합니다.
show_total 선택사항. true(으)로 설정하는 경우 응답 메타데이터는 페이지 매김과 함께 사용 중인 totalCount의 값을 리턴합니다.

GET api/v2/key_rings 요청에 성공하면 Key Protect 서비스 인스턴스로 가져오는 방법을 제한할 수 있습니다.

{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.key_ring+json",
        "collectionTotal": 2
    },
    "resources": [
        {
            "id": "default"
        },
        {
            "id": "Sample Key Ring 2",
            "creationDate": "2020-03-12T11:00:06Z",
            "createdBy": "..."
        }
    ]
}

API를 사용하여 키 링 삭제

다음 엔드포인트에 대한 DELETE 호출을 작성하여 키 링을 삭제할 수 있습니다.

https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>

이 조치는 키 링에 영구 삭제됨 상태가 아닌 상태의 키가 하나 이상 포함되어 있는 경우에는 실패합니다. 키 링의 유일한 키가 영구 삭제됨 상태인 경우, force=true 가 삭제 명령에 추가되면 키 링을 삭제할 수 있습니다. 해당 상태의 키는 자동으로 default 키 링으로 전송됩니다.

  1. 인증 정보를 검색하여 서비스에서 키에 대한 작업을 수행하십시오.

  2. 삭제할 키 링의 ID를 검색하십시오.

    키 링에 대한 ID를 Key Protect 인스턴스에서 키 링의 목록을 검색하여 찾을 수 있습니다.

  3. 다음 curl 명령을 실행하여 키 링을 삭제하십시오. 영구 삭제됨 상태의 키를 포함하는 경우 키 링을 강제로 삭제하는 force=true 의 존재에 유의하십시오.

    $ curl -X DELETE \
        "https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>?force=true" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "prefer: <return_preference>"
    

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

Key Protect API를 사용하여 키를 삭제하는 데 필요한 변수들을 설명합니다.
가변 설명
지역 필수. us-south 또는 eu-gb 과 같은 지역 약어는 Key Protect 인스턴스가 위치한 지리적 영역을 나타냅니다.

자세한 내용은 ‘지역별 서비스 엔드포인트’를 참조하십시오.
key_ring_id 필수입니다. 삭제할 키 링의 고유 ID입니다.
IAM_token 필수. 사용자의 IBM Cloud 액세스 토큰입니다. curl 요청에 Bearer 값을 포함하여 IAM 토큰의 전체 컨텐츠를 포함하십시오.

자세한 내용은 ‘액세스 토큰 가져오기’를 참조하십시오.
instance_ID 필수. Key Protect 서비스 인스턴스에 지정된 고유 ID입니다.

자세한 내용은 “인스턴스 ID 가져오기”를 참조하십시오.

요청이 성공하면 키 링이 성공적으로 삭제되었음을 표시하는 HTTP 204 No Content 응답이 리턴됩니다.