서드파티 서비스에서 IBM Cloud 플랫폼을 사용하는 방법
타사 서비스는 인증, 액세스, 셀프 서비스 인스턴스 생성, 계량 및 청구에 IBM Cloud 플랫폼을 사용합니다. 이 주제에서는 서비스에서 사용하는 플랫폼 구성 요소에 대한 개괄적인 개요를 제공하고 이러한 개념을 엔드투엔드 프로비저닝 시나리오로 통합합니다.
IBM Cloud 프로비져닝 계층
프로비저닝 계층은 IBM Cloud 리소스의 라이프사이클을 관리합니다. 프로비저닝 계층은 고객 계정에 있는 리스소의 라이프사이클을 제어하고 추적합니다. 리소스는 애플리케이션 또는 서비스 인스턴스를 위해 만들거나 예약할 수 있는 물리적 또는 논리적 구성 요소입니다. 리소스의 예로는 데이터베이스, 계정, 프로세서, 메모리 및 스토리지 한계가 있습니다. 일반적으로 프로비저닝 계층에서 추적하는 리소스는 사용량 메트릭과 청구를 연관시키는 데 사용되지만 항상 그렇지는 않습니다. 어떤 경우에는 리소스가 프로비저닝 계층과 연관되어 리소스 라이프사이클이 계정 라이프사이클과 함께 관리될 수 있습니다.
리소스 라이프사이클 관리
프로비저닝 계층은 생성(인스턴스 생성)에서 서비스 자격 증명(액세스 자격 증명 생성 및 제거), 삭제(인스턴스 삭제)에 이르는 리소스의 수명 주기를 제어하기 위한 공통 API를 제공합니다. 또한 IBM Cloud 플랫폼에서는 사용자 기능을 작성할 필요가 없는 리소스의 라이프사이클을 관리할 수 있는 UI와 CLI를 제공합니다.
프로비저닝 계층은 리소스 라이프사이클의 다음 요소를 관리하는 데 도움이 되는 API를 제공합니다.
- 자원 인스턴스 작성
- 리소스 인스턴스 업데이트
- 서비스 인증 정보 작성
- 서비스 자격 증명 제거하기
- 리소스 키
- 자원 인스턴스 삭제
IBM Cloud IAM(Identity and Access Management)
IAM(Identity Access Management)을 사용하면 안전하게 사용자를 인증하고 IBM Cloud에서 일관되게 모든 클라우드 리소스에 대한 액세스를 제어할 수 있습니다. IBM Cloud 프로비저닝 계층은 프로비저닝 계층에 대해 수행된 조치의 인증 및 권한 부여를 위해 IAM을 채택했습니다. 타사 제품 공급업체는 IAM을 사용하여 인증 흐름을 만듭니다( OAuth ). 자세한 정보는 IAM의 개념을 참조하십시오.
제품에서 OpenID Connect(OIDC) 라이브러리를 사용하는 경우 IAM은 OIDC 통합을 지원합니다. OIDC는 인증 프레임워크인 OAuth 2.0 에 구축된 인증 계층으로, 온보딩 프로세스를 간소화하는 데 도움이 될 수 있습니다. OIDC에 대한 자세한 내용은 Open ID Connect를 참조하세요.
IBM Cloud 카탈로그
IBM Cloud 카탈로그는 사용자가 온보드하는 제품의 제품 정의 (설명, 기능, 이미지, URL, 키워드 및 기타 제품 정의) 를 저장하고 표시합니다. IBM Cloud Partner Center는 서비스의 필수 메타데이터의 모든 측면을 정의하는 방법을 제공합니다. Partner Center의 대시보드, 제품 세부사항 및 가격 책정 탭에서 필수 및 선택적 메타데이터 필드에 대한 자세한 정보를 찾을 수 있습니다. 이 메타데이터는 카탈로그에 공개되고 표시됩니다. 이해를 돕기 위해 다음과 같은 주요 항목을 살펴보십시오.
- 프로그램 이름
- 프로그램 이름은 제품의 고유 ID이며 모든 IBM 서비스 및 도구에서 사용됩니다. 이 이름은 고객이 IBM Cloud 카탈로그에서 보는 제품의 표시 이름이 아닙니다. 프로그래밍 방식 이름은 회사 이름과 제품의 표시 이름에서 자동으로 생성됩니다.
- 표시 이름
- 서비스 이름입니다. 이 이름은 IBM Cloud 카탈로그에 공개적으로 표시됩니다. 예를 들어, 다음과 같습니다.
Compose Redis - 서비스 ID
- 서비스 ID는 다른 IBM Cloud 서비스와 통신할 때 서비스를 식별하는 데 사용됩니다. 또한 서비스 ID에 대한 API 키를 작성해야 합니다.
- 회사 또는 제품 로고
- 제품 로고가 있는 SVG 파일입니다.
- 간단한 설명
- 제품, 제품의 가치 및 IBM Cloud 카탈로그 항목에 표시하려는 기타 세부 정보에 대한 간단한 설명입니다. 설명으로 한 문장이나 구를 추가할 수 있습니다.
- 자세한 설명
- 이 설명은 카탈로그의 제품 페이지 시작 부분에 표시됩니다. 관련 키워드를 포함하고 자세한 설명을 위해 두 개 이상의 문장을 고려하십시오.
- 문서 URL
- IBM Cloud 문서에 대한 링크입니다.
- 최종 사용자 라이선스 계약(EULA) URL
- 사용자가 제품을 사용하기 위해 동의해야 하는 최종 사용자 라이선스 계약 링크입니다. 이 계약에 청구, 지불 또는 세금 조항을 포함하지 마십시오.
- 범주
- 제품을 가장 잘 설명하는 사용 가능한 IBM Cloud 카테고리의 선택사항입니다. 하나의 카테고리만 선택할 수 있습니다.
- 키워드
- 제품과 관련된 단어, 구문 및 기타 주요 검색어입니다.
- 기능
- 상품 속성에 대한 간단한 설명 고유 ID입니다.
- 미디어
- 제품을 보여주는 화면 캡처 및 비디오입니다.
- 플랜 이름
- 회사 또는 제품 이름이 포함되지 않은 요금제 이름입니다. 이 정보는 IBM Cloud 카탈로그의 고객에게 표시됩니다. 예를 들어, 다음과 같습니다.
Gold - 플랜 설명
- 요금제에 대한 설명입니다. 이 정보는 IBM Cloud 카탈로그의 고객에게 표시됩니다.
- 플랜의 프로그램 이름
- 자동으로 생성되는 가격 책정 플랜의 기술 이름입니다. 이 이름을 편집할 수 없습니다.
Open Service Broker
서비스 브로커는 서비스 라이프사이클을 관리합니다. IBM Cloud 플랫폼은 서비스 브로커와 상호 작용하여 서비스 인스턴스 및 서비스 바인딩을 생성하고 관리합니다. 서비스 바인딩은 애플리케이션과 서비스 인스턴스 간의 연관 표시이며, 여기에는 종종 애플리케이션이 서비스 인스턴스와 통신하기 위해 사용하는 신임 정보가 포함됩니다. 유효한 메타데이터 값을 제공하면 요청이 수행될 때 성공적인 REST API 응답이 생성됩니다.
IBM Cloud는 Open Service Broker API(OSB) version 2.12 스펙을 사용합니다. 오픈 브로커 API 사양을 읽고 숙지하고, 자세한 내용은 readme 파일을 참고하세요.
리소스 컨트롤러는 리소스 생성 요청을 받으면 서비스 유형, 제품, 요금제 및 지역 가용성을 확인하기 위해 OSB를 호출합니다. 리소스 컨트롤러는 또한 고객 계정과 연결된 플랜의 가시성을 확인합니다. IBM Cloud 에서 OSB 사양을 확장하는 브로커 샘플 및 API 문서를 제공합니다. 자세한 통합 청구 온보딩 개발 단계를 수행하면서 브로커를 개발하고 호스팅하는 방법에 대한 자세한 정보를 볼 수 있습니다.
IBM Cloud 측정 서비스
서비스에서 측정량 기반 플랜을 제공하는 경우 IBM Cloud 사용자는 사용하는 리소스의 양에 따라 요금이 부과됩니다. 예를 들어, 데이터베이스 서비스를 사용하는 IBM Cloud 사용자는 사용자 애플리케이션이 사용하는 스토리지의 양에 따라 요금이 부과될 수 있습니다. 사용량을 요금 부과 가능 레코드로 변환하려면 사용량을 제출해야 합니다.
측정량 기반 플랜을 제공하는 모든 통합 청구 서비스는 IBM Cloud 측정 서비스를 사용하여 사용량 데이터를 보고해야 합니다.
측정량 기반 플랜을 제공하는 경우 측정 서비스 API를 사용하여 시간별 사용량 제출을 자동화해야 합니다.
측정에 대한 자세한 정보는 측정 통합을 참조하십시오. 측정된 사용량 제출에 대한 자세한 정보는 측정량 기반 플랜을 위한 사용량 제출을 참조하십시오.
생성 시나리오: 모든 것을 하나로 모으기
이제 개념을 모두 함께 가져와서 IBM Cloud 플랫폼을 사용하여 서비스 인스턴스를 작성하는 방법에 대한 예제를 살펴봅니다.
콘솔을 사용하여 서비스 인스턴스 만들기
서비스 인스턴스를 작성하려는 경우 서비스, 플랜을 선택하고 작성 오퍼레이션을 사용할 수 있습니다.
IBM Cloud 플랫폼은 사용자가 IBM CloudIAM을 사용하여 서비스 인스턴스를 작성할 수 있는 권한을 가지고 있는지 검증합니다. 이 유효성 검사가 완료되면 서비스 브로커의 생성 엔드포인트(PUT /v2/resource_instances/:resource_instance_id)가 시작됩니다. 인스턴스를 생성하려면 다음 규칙을 충족해야 합니다:
- IBM Cloud 컨텍스트가 컨텍스트 변수에 포함되어야 합니다.
X-Broker-API-Originating-Identity에 요청을 시작한 사용자의 IBM IAM ID가 포함됩니다.- 매개변수 섹션에 요청된 위치(및 서비스에 필요한 추가 매개변수)가 포함됩니다.
인스턴스 작성을 위한 예제 요청:
PUT /v2/service_instances/crn%3Av1%3Abluemix%3Apublic%3Acompose-redis%3Aus-south%3Aa%2F46aa677e-e83f-4d17-a2b6-5b752564477c%3A416d769b-682d-4833-8bd7-5ef8778e5b52?accepts_incomplete=true HTTP/1.1
Host: https://broker.compose.cloud.ibm.com
Authorization: basic dXNlcjpwYXNzd29yZA==
X-Broker-Api-Version: 2.12
X-Broker-API-Originating-Identity: ibmcloud aWJtaWQtNDU2MzQ1WA==
{
"service_id": "0bc9d744-6f8c-4821-9648-2278bf6925bb", // your service's GUID from onboarding
"plan_id": "ecc19311-aba2-49f7-8198-1e450c8460d4", //your plan's GUID from onboarding
"context": {
"platform": "ibmcloud",
"account_id": "003e9bc3993aec710d30a5a719e57a80",
"crn": "crn:v1:bluemix:public:compose-redis:us-south:a/003e9bc3993aec710d30a5a719e57a80:416d769b-682d-4833-8bd7-5ef8778e5b52",
"resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/003e9bc3993aec710d30a5a719e57a80::resource-group:b4570a825f7f4d57aa54e8e1d9507926",
"target_crn": "crn:v1:bluemix:public:resource-catalog::a/e97a8c01ac694e308ef3ad7795c7cdb3::deployment:e62e2c19-0c3b-41e3-b8b3-c71762ecd489:us-south38399"
},
"parameters": {
"location": "us-south",
"optional-param":"parameter required by your service"
}
}
CLI를 사용하여 서비스 인스턴스 만들기
서비스 인스턴스를 작성하려는 경우 ibmcloud cli [ ibmcloud resource service-instance-create NAME SERVICE_NAME SERVICE_PLAN_NAME LOCATION ]을 사용할 수 있습니다.
IBM Cloud 플랫폼은 사용자가 IBM CloudIAM을 사용하여 서비스 인스턴스를 작성할 수 있는 권한을 가지고 있는지 검증합니다. 이 유효성 검사가 완료되면 서비스 브로커의 생성 엔드포인트(PUT /v2/resource_instances/:resource_instance_id )가 시작됩니다. 인스턴스를 생성하려면 다음 규칙을 충족해야 합니다:
- IBM Cloud 컨텍스트가 컨텍스트 변수에 포함되어야 합니다.
X-Broker-API-Originating-Identity에 요청을 시작한 사용자의 IBM IAM ID가 포함됩니다.- 매개변수 섹션에 요청된 위치(및 서비스에 필요한 추가 매개변수)가 포함됩니다.
인스턴스 작성을 위한 예제 요청:
PUT /v2/service_instances/crn%3Av1%3Abluemix%3Apublic%3Acompose-redis%3Aus-south%3Aa%2F46aa677e-e83f-4d17-a2b6-5b752564477c%3A416d769b-682d-4833-8bd7-5ef8778e5b52?accepts_incomplete=true HTTP/1.1
Host: https://broker.compose.cloud.ibm.com
Authorization: basic dXNlcjpwYXNzd29yZA==
X-Broker-Api-Version: 2.12
X-Broker-API-Originating-Identity: ibmcloud aWJtaWQtNDU2MzQ1WA==
{
"service_id": "0bc9d744-6f8c-4821-9648-2278bf6925bb", // your service's GUID from onboarding
"plan_id": "ecc19311-aba2-49f7-8198-1e450c8460d4", //your plan's GUID from onboarding
"context": {
"platform": "ibmcloud",
"account_id": "003e9bc3993aec710d30a5a719e57a80",
"crn": "crn:v1:bluemix:public:compose-redis:us-south:a/003e9bc3993aec710d30a5a719e57a80:416d769b-682d-4833-8bd7-5ef8778e5b52",
"resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/003e9bc3993aec710d30a5a719e57a80::resource-group:b4570a825f7f4d57aa54e8e1d9507926",
"target_crn": "crn:v1:bluemix:public:resource-catalog::a/e97a8c01ac694e308ef3ad7795c7cdb3::deployment:e62e2c19-0c3b-41e3-b8b3-c71762ecd489:us-south38399"
},
"parameters": {
"location": "us-south",
"optional-param":"parameter required by your service"
}
}
API를 사용하여 서비스 인스턴스 만들기
이 조치는 UI 또는 CLI를 통해서만 수행할 수 있습니다. 단계를 보려면 UI 또는 CLI 지시사항으로 전환하십시오.
IBM Cloud 플랫폼은 사용자가 IBM CloudIAM을 사용하여 서비스 인스턴스를 작성할 수 있는 권한을 가지고 있는지 검증합니다. 이 유효성 검사가 완료되면 서비스 브로커의 생성 엔드포인트(PUT /v2/resource_instances/:resource_instance_id )가 시작됩니다. 인스턴스를 생성하려면 다음 규칙을 충족해야 합니다:
- IBM Cloud 컨텍스트가 컨텍스트 변수에 포함되어야 합니다.
X-Broker-API-Originating-Identity에 요청을 시작한 사용자의 IBM IAM ID가 포함됩니다.- 매개변수 섹션에 요청된 위치(및 서비스에 필요한 추가 매개변수)가 포함됩니다.
인스턴스 작성을 위한 예제 요청:
PUT /v2/service_instances/crn%3Av1%3Abluemix%3Apublic%3Acompose-redis%3Aus-south%3Aa%2F46aa677e-e83f-4d17-a2b6-5b752564477c%3A416d769b-682d-4833-8bd7-5ef8778e5b52?accepts_incomplete=true HTTP/1.1
Host: https://broker.compose.cloud.ibm.com
Authorization: basic dXNlcjpwYXNzd29yZA==
X-Broker-Api-Version: 2.12
X-Broker-API-Originating-Identity: ibmcloud aWJtaWQtNDU2MzQ1WA==
{
"service_id": "0bc9d744-6f8c-4821-9648-2278bf6925bb", // your service's GUID from onboarding
"plan_id": "ecc19311-aba2-49f7-8198-1e450c8460d4", //your plan's GUID from onboarding
"context": {
"platform": "ibmcloud",
"account_id": "003e9bc3993aec710d30a5a719e57a80",
"crn": "crn:v1:bluemix:public:compose-redis:us-south:a/003e9bc3993aec710d30a5a719e57a80:416d769b-682d-4833-8bd7-5ef8778e5b52",
"resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/003e9bc3993aec710d30a5a719e57a80::resource-group:b4570a825f7f4d57aa54e8e1d9507926",
"target_crn": "crn:v1:bluemix:public:resource-catalog::a/e97a8c01ac694e308ef3ad7795c7cdb3::deployment:e62e2c19-0c3b-41e3-b8b3-c71762ecd489:us-south38399"
},
"parameters": {
"location": "us-south",
"optional-param":"parameter required by your service"
}
}
IBM Cloud context 매개변수에 대한 이해
이전 예제에서는 context 매개변수에 리턴되는 메타데이터를 볼 수 있습니다. 컨텍스트에 대한 IBM Cloud 반환값은 다음과 같습니다:
-
플랫폼: 플랫폼을
ibmcloud로 식별합니다. -
"account_id": 서비스 인스턴스를 만들고 있는 IBM Cloud 계정의 ID를 반환합니다.
-
crn: 고객이 IBM Cloud 에서 서비스를 만들면 서비스 인스턴스가 생성되며, 이 인스턴스는 IBM Cloud 리소스 이름(CRN)으로 식별됩니다. CRN은 인스턴스 만들기, 바인딩(자격 증명 및 엔드포인트 만들기), 계량, 대시보드 표시, 액세스 제어 등 IBM Cloud 와의 상호작용의 모든 측면에 사용됩니다. 제품 공급자 관점에서 CRN은 대체로 IBM Cloud API와 함께 사용되는 불투명 문자열로 취급할 수 있습니다. 또한 다음 구조를 사용하여 분해할 수도 있습니다.
crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource프로비저닝 샘플에서
compose-redis서비스 CRN은 다음과 같습니다.crn:v1:bluemix:public:compose-redis:us-south:a/46aa677e-e83f-4d17-a2b6-5b752564477c:416d769b-682d-4833-8bd7-5ef8778e5b52::이 샘플에서 이
compose-redis인스턴스는 ID가 있는 IBM Cloud 계정의 일부입니다. 인스턴스의 고유 ID는416d769b-682d-4833-8bd7-5ef8778e5b52이며, 인스턴스는 퍼블릭 IBM Cloud 의us-south리전에서 호스팅됩니다. -
resource_group_crn: 서비스 인스턴스가 포함된 리소스 그룹을 리턴합니다. 추가 세부사항은 리스소 그룹 관리를 참조하십시오.
일반적으로 고유한 환경을 제외하고는
resource_group_crn을 다루지 않습니다. 해당 필드를 사용하기 전에 IBM 담당자에게 사용자 유스 케이스에 대해 문의하십시오.