サード・パーティー・サービスによる IBM Cloud プラットフォームの使用方法
サードパーティ・サービスは、認証、アクセス、セルフサービス・インスタンス作成、メータリング、課金に IBM Cloud。 このトピックでは、サービスが使用するプラットフォーム・コンポーネントのハイレベルな概要を提供し、これらの概念をエンドツーエンドのプロビジョニング・シナリオにまとめます。
IBM Cloud プロビジョニング・レイヤー
プロビジョニング・レイヤーは、IBM Cloud リソースのライフサイクルを管理します。 プロビジョニング・レイヤーは、お客様のアカウントのリソースのライフサイクルの制御およびトラッキングを担当します。 リソースとは、アプリケーションまたはサービス・インスタンス用に作成または予約できる物理的または論理的なコンポーネントである。 リソースの例としては、データベース、アカウント、プロセッサー、メモリー、およびストレージ制限などがあります。 一般に、プロビジョニング・レイヤーでトラッキングされるリソースは、使用量メトリックと請求を関連付けるよう意図されていますが、必ずしもそうとは限りません。 場合によっては、リソース・ライフサイクルをアカウント・ライフサイクルとともに管理できるように、リソースがプロビジョニング・レイヤーに関連付けられていることがあります。
リソース・ライフサイクルの管理
プロビジョニング・レイヤーは、作成(インスタンスの作成)からサービス・クレデンシャル(アクセス・クレデンシャルの作成と削除)、削除(インスタンスの削除)まで、リソースのライフサイクルを制御する共通APIを提供する。 さらに、IBM Cloud プラットフォームには、独自の機能の作成を必要としないこれらのリソースのライフサイクルを管理できる CLI および UI が用意されています。
プロビジョニング・レイヤーには、リソース・ライフサイクルの以下の要素の管理に役立つ API が用意されています。
- リソース・インスタンスの作成
- リソース・インスタンスの更新
- サービス資格情報の作成
- サービス認証情報の削除
- リソース・キー
- リソース・インスタンスの削除
IBM Cloud Identity and Access Management (IAM)
Identity Access Management (IAM) を使用すると、ユーザーを安全に認証し、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、カタログエントリーに表示させたい商品の概要、価値、その他の詳細。 説明文として1文または1フレーズを追加することができます。
- 詳細説明
- この説明は、カタログの製品ページの冒頭に表示されます。 関連するキーワードを含め、詳細な説明を得るために少なくとも 2 つの文を考慮してください。
- 文書 URL
- IBM Cloud の資料へのリンク。
- エンドユーザー使用許諾契約書(EULA) URL
- 製品を使用するためにユーザーが同意しなければならないエンドユーザー使用許諾契約書へのリンク。 この契約には、課金、支払い、税金の条件を含めないでください。
- カテゴリ
- ご使用の製品に最もよく当てはまる使用可能な IBM Cloud カテゴリーの選択。 選択できるカテゴリーは 1 つだけです。
- キーワード
- 製品に関連する単語、フレーズ、その他の検索キーワード。
- フィーチャー
- 商品の属性に関する短い記述的な固有 ID。
- メディア
- ご使用の製品を示す画面キャプチャーとビデオ。
- プラン名
- 会社名や製品名を含まない料金プランの名前。 この情報は、 IBM Cloud カタログ内の顧客に表示されます。 例:
Gold - プランの説明
- 料金プランの説明。 この情報は、 IBM Cloud カタログ内の顧客に表示されます。
- 計画のプログラム名
- 自動的に生成される価格設定プランの技術名。 この名前を編集することはできません。
サービス・ブローカーを開く
サービス・ブローカーは、サービスのライフサイクルを管理します。 IBM Cloud プラットフォームはサービス・ブローカーと相互作用し、サービス・インスタンスとサービス・バインディングを作成・管理する。 サービス・バインディングは、アプリケーションとサービス・インスタンスの間の関連付けの表現であり、多くの場合、アプリケーションがサービス・インスタンスと通信するために使用する資格情報が含まれています。 有効なメタデータ値を提供することで、リクエスト実行時にREST APIレスポンスが成功する。
IBM Cloud は、Open Service Broker API (OSB) version 2.12 仕様を使用します。 Open Broker API の仕様に目を通し、よく理解し、Readme ファイルをガイドとして、さらに知識を深めてください。
リソースコントローラがリソースを作成するリクエストを受け取ると、OSBを呼び出してサービスタイプ、製品、プラン、地域の可用性を検証します。 リソースコントローラはまた、 お客様 アカウント関連付けられたプランの可視性を検証します。 IBM Cloud は、OSB仕様を拡張するブローカサンプルとAPIドキュメントを提供します。 ブローカーの開発およびホストのより詳細な情報は、詳細な統合請求のオンボーディング開発ステップを段階的に実行しているときに見つけることができます。
IBM Cloud 計量サービス
サービスで従量制プランが提供されている場合、IBM Cloud ユーザーは、使用したリソースの量に基づいて課金されます。 例えば、データベース・サービスを使用する IBM Cloud ユーザーは、アプリケーションが使用するストレージの量に基づいて課金される可能性があります。 使用量を課金可能な記録に変換するためには、使用量の送信が行われる必要があります。
従量制プランを提供するすべての統合請求サービスは、使用量データを報告するために IBM Cloud 計量サービスを使用する必要があります。
従量制プランを提供する場合は、計量サービス API を使用して、毎時の使用量の送信を自動化する必要があります。
計量について詳しくは、計量の統合を参照してください。 計量される使用量の送信について詳しくは、従量制プランの使用量の送信を参照してください。
創造のシナリオすべてをまとめる
次に、すべての概念をまとめ、IBM Cloud プラットフォームを使用してサービス・インスタンスの作成がどのように機能するかについての例を見てみます。
コンソールを使ってサービス・インスタンスを作成する
ユーザーはサービス・インスタンスを作成する場合、サービスを選択し、計画し、**「作成」**操作を使用することができます。
IBM Cloud プラットフォームは、ユーザーが IBM Cloud IAM を使用してサービス・インスタンスを作成する権限を持っていることを確認します。 この検証が行われた後、サービスブローカーの作成エンドポイント(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 Cloud IAM を使用してサービス・インスタンスを作成する権限を持っていることを確認します。 この検証が行われた後、サービスブローカーの作成エンドポイント(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 Cloud IAM を使用してサービス・インスタンスを作成する権限を持っていることを確認します。 この検証が行われた後、サービスブローカーの作成エンドポイント(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 返します:
-
platform: プラットフォームを
ibmcloudとして識別します。 -
"アカウント ":サービスインスタンスを作成している IBM Cloud のアカウント ID を返します。
-
CRN : お客様 IBM Cloud でサービスを作成すると、サービスインスタンスが作成され、このインスタンスは IBM Cloud Resource Name(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 担当員に相談してください。