バックアップ・サービスに対するサービス間許可の確立
バックアップポリシーを作成する前に、サービス間の承認を確立し、 ユーザーの役割 を指定する必要があります。 この認証により、Backup for VPCサービスはタグを検出し、バックアップスナップショットを作成し、 Object Storage またはソースファイル共有に保存することができます。
概要
IBM Cloud Backup for VPC サービスを動作させるには、サービスの承認を提供する必要があります。 許可におけるソース・サービスとは、ターゲット・サービスへのアクセス権限を付与されたサービスです。 選択した役割によって、ソース・サービスのアクセス・レベルが定義されます。 ターゲット・サービスとは、割り当てる役割に基づいて、ソース・サービスがアクセスする許可を付与するサービスです。 ソース・サービスは、許可が作成されたのと同じアカウントに含めることも、別のアカウントに含めることもできます。 ターゲット・サービスは常に、許可が作成されたアカウント内にあります。
バックアップ・ポリシーを作成し、バックアップ・ジョブを正しく実行するには、バックアップ・サービスが Block Storage for VPC、VPC のスナップショット、および Virtual Server for VPC サービスを処理する権限を持っている必要があります。
エンタープライズアカウントの管理者で、エンタープライズアカウントとサブアカウントのバックアップポリシーを作成する場合は、エンタープライズアカウントのバックアップサービスがサブアカウントのバックアップサービスと連携するための権限も必要です。
バックアップポリシーを作成し、ファイル共有のバックアップジョブを正しく実行するには、バックアップサービスが File Storage for VPCで動作するように許可されている必要があります。
許可について詳しくは、 許可を使用したサービス間のアクセス権限の付与 を参照してください。
サービス許可を誤ってセットアップした場合、バックアップ・サービスはバックアップ・ポリシーを作成できません。 詳しくは、トラブルシューティングのトピック「 許可が正しくないためバックアップ・ポリシーが作成されない」を参照してください。
コンソールで認可ポリシーを作成する
アカウント・レベルでのボリューム・バックアップの権限作成
サービス間許可ポリシーを作成するには、以下の手順を実行します。
-
IBM Cloud コンソールで、**「管理 (Manage)」>「アクセス (IAM) (Access (IAM))」**と移動します。
-
サイド・パネルから、権限を選択します。
-
「許可の管理」ページで、作成をクリックします。
-
の中にソースセクションで、ソースアカウント。 アカウントでバックアップサービスの承認を設定する際に、このアカウント。 次へ をクリックします。
-
ソース・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
- クリックして範囲を選択します特定のリソース。
- 属性を選択をクリックします。
- リストから選択リソースタイプ。
- 次のフィールドで、IBM Cloud Backup for VPC を選択します。
- 次へ をクリックします。
-
ターゲット・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
- クリックして範囲を選択します特定のリソース。
- 属性を選択をクリックします。
- 「リソース・タイプ」 をクリックします。 以下のサービスから1つお選びください。 すべての許可を作成する必要があります。
サービス間の許可 ソース・サービス - リソース・タイプ ターゲット・サービス - リソース・タイプ 従属サービス・ユーザー役割 IBM Cloud Backup for VPC Block Storage for VPC オペレーター IBM Cloud Backup for VPC Block Storage Snapshots for VPC エディター IBM Cloud Backup for VPC VPC のマルチボリューム・スナップショット エディター IBM Cloud Backup for VPC Virtual Server for VPC オペレーター -
次へ をクリックします。
-
役割を選択します。 適切な役割については表を参照のこと。
-
クリックレビュー選択内容を確認します。
-
「許可」 をクリックします。
-
「許可の管理」 ページに戻ったら、 「作成」 を再度クリックし、同じ手順に従って残りのサービスの許可をセットアップします。
アカウントレベルでのファイル共有バックアップの権限作成
サービス間許可ポリシーを作成するには、以下の手順を実行します。
- IBM Cloud コンソールで、**「管理 (Manage)」>「アクセス (IAM) (Access (IAM))」**と移動します。
- サイド・パネルから、権限を選択します。
- 「許可の管理」ページで、作成をクリックします。
- の中にソースセクションで、ソースアカウント。 アカウントでバックアップサービスの承認を設定する際に、このアカウント。 次へ をクリックします。
- ソース・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
- クリックして範囲を選択します特定のリソース。
- 属性を選択をクリックします。
- リストから選択リソースタイプ。
- 次のフィールドで、IBM Cloud Backup for VPC を選択します。
- 次へ をクリックします。
- ターゲット・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
- クリックして範囲を選択します特定のリソース。
- 属性を選択をクリックします。
- 「リソース・タイプ」 をクリックします。 選択 File Storage for VPC。
- 次へ をクリックします。
- 役割を選択: エディター 、共有スナップショットオペレーター。
- クリックレビュー選択内容を確認します。
- 「許可」 をクリックします。
子アカウントからEnterpriseアカウントで管理されるバックアップのためのクロスアカウント認証の作成
エンタープライズ管理者がバックアップを一元的に管理できるようにするには、サブアカウントが、エンタープライズ・アカウントのバックアップ・サービスが子アカウントのリソースと対話するための許可を提供する必要があります。 子アカウント管理者は、以下の手順に従い、子アカウントの権限をローカルに作成することができる。
-
IBM Cloud コンソールで、**「管理 (Manage)」>「アクセス (IAM) (Access (IAM))」**と移動します。
-
サイド・パネルから、権限を選択します。
-
「許可の管理」ページで、作成をクリックします。
-
の中にソースセクションで、ソースアカウント。 エンタープライズアカウントのバックアップサービスの承認を設定する場合は、特定のアカウントをクリックし、エンタープライズ アカウントの ID を入力します。 次へ をクリックします。
-
ソース・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
- クリックして範囲を選択します特定のリソース。
- 属性を選択をクリックします。
- リストから選択リソースタイプ。
- 次のフィールドで、IBM Cloud Backup for VPC を選択します。
- 次へ をクリックします。
-
ターゲット・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。
- クリックして範囲を選択します特定のリソース。
- 属性を選択をクリックします。
- 「リソース・タイプ」 をクリックします。 表 2 のいずれかのサービスを選択します。
エンタープライズ向けサービス間認証 ソース・サービス - リソース・タイプ ターゲット・サービス - リソース・タイプ 従属サービス・ユーザー役割 IBM Cloud Backup for VPC Block Storage for VPC オペレーター IBM Cloud Backup for VPC Block Storage Snapshots for VPC エディター IBM Cloud Backup for VPC VPC のマルチボリューム・スナップショット エディター IBM Cloud Backup for VPC Virtual Server for VPC オペレーター IBM Cloud Backup for VPC IBM Cloud Backup for VPC エディター IBM Cloud Backup for VPC File Storage for VPC 編集者、共有スナップショットオペレーター -
次へ をクリックします。
-
役割を選択します。 適切な役割については表 2 を参照してください。
-
クリックレビュー選択内容を確認します。
-
「許可」 をクリックします。
-
「許可の管理」 ページに戻ったら、 「作成」 を再度クリックし、同じ手順に従って残りのサービスの許可をセットアップします。
エンタープライズで管理されるバックアップ用のクロスアカウント承認テンプレートの作成
承認テンプレート を使用すると、エンタープライズアカウントの管理者は、子アカウントに割り当てることができる承認ポリシーを作成し、子アカウントに個別にログインすることなく、割り当てられたアカウントで承認を実装できます。
- IBM Cloud コンソールで 、[管理] > [アクセス(IAM)] > [エンタープライズ] > [テンプレート ] に移動します。
- 「許可」 を選択し、「作成」 をクリックします。
- 認証テンプレートの名前と説明を入力します。
- エンタープライズ管理された承認ポリシーについて、子アカウントユーザーに対する目的を説明する説明を入力します。
- 「作成」 をクリックします。
次に、以下のステップを完了し、認証ルールを構築する:
-
認可に進み、認可ポリシーの詳細を指定する。
-
ソース・サービスが別のサービスへのアクセスを要求するアカウントを選択します。 Assigned account(s) を選択します。 認可テンプレートを後で子アカウントに割り当てる場合、アクセス元のアカウントは、アクセスされるリソースを保持する子アカウントと同じアカウントに入力されます。
-
次に、ソース・サービスとリソースを選択する。
- リストから VPCインフラストラクチャサービスを選択します。 **「次へ」**をクリックします。
- クリックして範囲を選択します特定のリソース。
- 属性を選択をクリックします。
- リストから選択リソースタイプ。
- 次のフィールドで、IBM Cloud Backup for VPC を選択します。
-
ターゲット・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。
- クリックして範囲を選択します特定のリソース。
- 属性を選択をクリックします。
- リストから選択リソースタイプ。 以下の表からいずれかのサービスをお選びください。 すべての許可を作成する必要があります。
エンタープライズ向けサービス間認証 ソース・サービス - リソース・タイプ ターゲット・サービス - リソース・タイプ 従属サービス・ユーザー役割 IBM Cloud Backup for VPC Block Storage for VPC オペレーター IBM Cloud Backup for VPC Block Storage Snapshots for VPC エディター IBM Cloud Backup for VPC VPC のマルチボリューム・スナップショット エディター IBM Cloud Backup for VPC Virtual Server for VPC オペレーター IBM Cloud Backup for VPC IBM Cloud Backup for VPC エディター IBM Cloud Backup for VPC File Storage for VPC 編集者、共有スナップショットオペレーター -
次へ をクリックします。
-
役割を選択します。 適切な役割については表を参照のこと。
-
クリックレビュー選択内容を確認します。 続いて、**「保存」**をクリックします。
-
これでテンプレートをコミットし、子アカウントに割り当てる準備ができました。 ステップを繰り返して、すべてのサービスの承認テンプレートを作成する。
Event Notificationsに対する認証の作成
Event Notificationsのサービス間認可ポリシーを作成するには、以下の手順に従ってください:
- IBM Cloud コンソールで、**「管理 (Manage)」>「アクセス (IAM) (Access (IAM))」**と移動します。
- サイド・パネルから、権限を選択します。
- 「許可の管理」ページで、作成をクリックします。
- の中にソースセクションで、ソースアカウント。 アカウントでバックアップサービスの承認を設定する際に、このアカウント。 次へ をクリックします。
- ソース・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
- クリックして範囲を選択します特定のリソース。
- 属性を選択をクリックし、リストからリソースタイプを選択します。
- 次のフィールドで、IBM Cloud Backup for VPC を選択します。
- 次へ をクリックします。
- Event Notifications 対象サービスとして選択します。 **「次へ」**をクリックします。
- クリックして範囲を選択します特定のリソース。
- 属性を選択をクリックします。
- serviceInstance をクリックします。
- 次のフィールドで、 文字列「equals 」を選択する。
- 次のフィールドで、認証したいEvent Notificationsサービス・インスタンスを選択します。
- **「イベント・ソース・マネージャー」**ロールを選択します。
- クリックレビュー選択内容を確認します。
- 「許可」 をクリックします。
CLI からの許可ポリシーの作成
アカウント・レベルでのボリューム・バックアップの権限作成
アカウントで Backup for VPC を使用して、ブロック・ストレージ・ボリュームのポリシー、計画、およびバックアップ・ジョブを作成するには、以下のサービス間許可を作成します。
- オペレーター 役割を持つ
backup-policy
(ソース) からinstance
(ターゲット) へ - オペレーター 役割を持つ
backup-policy
(ソース) からvolume
(ターゲット) へ - 「エディター」 役割を持つ
backup-policy
(ソース) からsnapshot
(ターゲット) へ - 「エディター」 役割を持つ
backup-policy
(ソース) からsnapshot-consistency-group
(ターゲット) へ
- 許可ポリシーに関する以下の情報を含む 4 つの JSON ファイルを作成します。
- インスタンス・サービス:
{ "type": "authorization", "subject": { {"attributes": [ {"name": "accountId", "value": "ACCOUNT_ID"}, {"name": "serviceName", "value": "is"}, {"name": "resourceType", "value": "backup-policy"}]}}, "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Operator"}], "resources": [ {"attributes": [ {"name": "accountId", "value": "ACCOUNT_ID"}, {"name": "serviceName", "operator": "stringEquals", "value": "is"}, {"name": "instanceId", "operator": "stringEquals", "value": "*"}]}] }
- Block Storage ボリュームサービス:
{ "type": "authorization", "subject": { {"attributes": [ {"name": "accountId", "value": "ACCOUNT_ID"}, {"name": "serviceName", "value": "is"}, {"name": "resourceType", "value": "backup-policy"}]}}, "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Operator"}], "resources": [ {"attributes": [ {"name": "accountId", "value": "ACCOUNT_ID"}, {"name": "serviceName", "operator": "stringEquals", "value": "is"}, {"name": "volumeId", "operator": "stringEquals", "value": "*"}]}] }
- Block Storage スナップショットサービス:
{ "type": "authorization", "subject": { {"attributes": [ {"name": "accountId", "value": "ACCOUNT_ID"}, {"name": "serviceName", "value": "is"}, {"name": "resourceType", "value": "backup-policy"}]}}, "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}], "resources": [ {"attributes": [ {"name": "accountId", "value": "ACCOUNT_ID"}, {"name": "serviceName", "operator": "stringEquals", "value": "is"}, {"name": "snapshotId", "operator": "stringEquals", "value": "*"}]}] }
- スナップショット整合性グループ:
{ "type": "authorization", "subject": { {"attributes": [ {"name": "accountId", "value": "ACCOUNT_ID"}, {"name": "serviceName", "value": "is"}, {"name": "resourceType", "value": "backup-policy"}]}}, "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}], "resources": [ {"attributes": [ {"name": "accountId", "value": "ACCOUNT_ID"}, {"name": "serviceName", "operator": "stringEquals", "value": "is"}, {"name": "snapshotConsistencyGroupId", "operator": "stringEquals", "value": "*"}]}] }
- インスタンス・サービス:
- 次に、JSON ファイルを使用して以下の CLI コマンドを実行します。
ibmcloud iam authorization-policy-create --file ~/Documents/policy.json
このコマンドで利用可能なすべてのパラメーターについて詳しくは、ibmcloud iam authorization-policy-create を参照してください。
アカウントレベルでのファイル共有バックアップの権限作成
File Storage for VPC 共有バックアップ用のサービス間承認ポリシーを作成するには、 authorization-policy-create
コマンドを使用します。
ibmcloud iam authorization-policy-create is is "Share Snapshot Operator",Editor --source-resource-type backup-policy --target-resource-type share
このコマンドで利用可能なすべてのパラメーターについて詳しくは、ibmcloud iam authorization-policy-create を参照してください。
エンタープライズで管理されるバックアップ用のクロスアカウント承認テンプレートの作成
エンタープライズアカウントの管理者は、子アカウントに 認可ポリシーテンプレートの作成と割り当て 、権限を一元管理することができます。 Enterpriseのすべての子アカウントのバックアップポリシーを有効にするために使用できる承認ポリシーテンプレートを作成するには、次の手順を実行します。
- エンタープライズ・ルート・アカウントIDを取得するには、以下のコマンドを実行する。
ibmcloud enterprise show
- 認可ポリシーテンプレートの定義を提供するJSONファイルを作成する。 JSON ファイルで使用できる属性の詳細については、 IAM Policy Management API を参照してください。
-
インスタンス・サービス:
{ "name": "Centralized authorization for Backup service to work with Instances", "description": "Grant Operator Role for the Backup service to work with Instances", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy":{ "type": "authorization", "description": "Grant Operator on VPC Instances", "control":{ "grant":{ "roles":[ {"role_id": "crn:v1:bluemix:public:iam::::role:Operator"}] }}, "subject":{ "attributes":[ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "resourceType", "operator": "stringEquals", "value": "backup-policy"} ]}, "resource":{ "attributes":[ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "instanceId", "operator": "stringExists", "value": true} ]}} }
-
Block Storage ボリュームサービス:
{ "name": "Centralized authorization for Backup service to work with Block Storage service", "description": "Grant Operator Role for the Backup service to work with Block Storage volumes", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy":{ "type": "authorization", "description": "Grant Operator on Block Storage for VPC volumes", "control": { "grant": { "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Operator"}] }}, "subject": { "attributes": [ {"key": "serviceName", "value": "is"}, {"key": "resourceType", "value": "backup-policy"} ]}, "resource": { "attributes": [ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "volumeId", "operator": "stringExists", "value": "true"} ]}} }
-
Block Storage スナップショットサービス:
{ "name": "Centralized authorization for Backup service to work with Block Storage snapshots", "description": "Grant Editor Role for the Backup service to work with Block Storage snapshots", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy": { "type": "authorization", "description": "Grant Editor on Block Storage for VPC snapshots", "control": { "grant": { "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}] }}, "subject": { "attributes": [ {"key": "serviceName", "value": "is"}, {"key": "resourceType", "value": "backup-policy"} ]}, "resource": { "attributes": [ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "snapshotId", "operator": "stringExists", "value": "true"} ]}} }
-
スナップショット整合性グループ:
{ "name": "Centralized authorization for Backup service to work with snapshot consistency groups", "description": "Grant Editor Role for the Backup service to work with snapshot consistency groups", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy": { "type": "authorization", "description": "Grant Editor on snapshot consistency groups", "control": { "grant": { "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}] }}, "subject": { "attributes": [ {"key": "serviceName", "value": "is"}, {"key": "resourceType", "value": "backup-policy"} ]}, "resource": { "attributes": [ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "snapshotConsistencyGroupId", "operator": "stringExists", "value": "true"} ]}} }
- ファイル共有:
{ "name": "Centralized authorization for Backup service to work with File shares", "description": "Grant Editor Role for the Backup service to work with File shares", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy": { "type": "authorization", "description": "Grant Editor, and Share Snapshot Operator roles on File shares", "control": { "grant": { "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"},{"role_id": "crn:v1:bluemix:public:iam::::role:ShareSnapshotOperator"}] }, "subject": { "attributes": [ {"key": "serviceName", "value": "is"}, {"key": "resourceType", "value": "backup-policy"}] }, "resource": { "attributes": [ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "shareId", "operator": "stringExists", "value": "true"}] } } }
-
-
以下のサンプル・リクエストに示すように、JSONファイルを指定して
authorization-policy-template-create
コマンドを実行する:ibmcloud iam authorization-policy-template-create --file /path/to/vpc-share-authorization-template.json
-
これをすべてのJSONファイルについて繰り返す。 完了したら、テンプレートをコミットして子アカウントに割り当てる準備ができます。
-
以下のコマンドを実行して、テンプレートのバージョンをコミットし、テンプレートをターゲットアカウントに割り当てます。
ibmcloud iam authorization-policy-template-version-commit (TEMPLATE_ID | TEMPLATE_NAME) TEMPLATE_VERSION [-q, --quiet]
ibmcloud iam authorization-policy-assignment-create (TEMPLATE_ID | TEMPLATE_NAME) TEMPLATE_VERSION --target-type TYPE --target TARGET [-q, --quiet] [-o, --output FORMAT]
このコマンドで使用できるすべてのパラメータの詳細については 、ibmcloud iam authorization-policy-template-create を参照してください。
Event Notificationsに対する認証の作成
Event Notificationsのサービス間認可ポリシーを作成するには、「authorization-policy-create
コマンドを使用する。
ibmcloud iam authorization-policy-create is event-notification EventSourceManager --source-resource-type backup-policy --target-resource-instance $en-instance-ID
このコマンドで利用可能なすべてのパラメーターについて詳しくは、ibmcloud iam authorization-policy-create を参照してください。
API を使用した許可ポリシーの作成
アカウント・レベルでのボリューム・バックアップの権限作成
アカウントで Backup for VPC を使用して、ブロック・ストレージ・ボリュームのポリシー、計画、およびバックアップ・ジョブを作成するには、以下のサービス間許可を作成します。
- operator 役割を持つ
is.backup-policy
(ソース) からis.instance
(ターゲット)。 - operator 役割を持つ
is.backup-policy
(ソース) からis.volume
(ターゲット)。 - editor 役割を持つ
is.backup-policy
(ソース) からis.snapshot
(ターゲット) へ。 is.backup-policy
(ソース) tois.snapshot-consistency-group
with editor 役割
以下の例のように、 IAM ポリシー管理 API に対して要求を行います。
curl -X POST 'https://iam.cloud.ibm.com/v1/policies'
-H 'Authorization: Bearer $TOKEN'
-H 'Content-Type: application/json'
-d '{
"type": "access",
"description": "Operator role for the Backup service to the Virtual Server service",
"subjects": [
{"attributes": [
{"name": "serviceName", "value": "is"},
{"name": "accountId", "value": "$ACCOUNT_ID"},
{"name": "resourceType", "value": "backup-policy"}]
}
],
"roles":[
{"role_id": "crn:v1:bluemix:public:iam::::role:Operator"}
],
"resources":[
{"attributes":[
{"name": "accountId", "value": "$ACCOUNT_ID"},
{"name": "serviceName", "operator": "stringEquals", "value": "is"},
{"name": "instanceId", "operator": "stringEquals", "value": "*"}]
}
]
}'
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"type": "access",
"description": "Operator role for the Backup service to the Cloud Block Storage",
"subjects":[
{"attributes":[
{"name": "serviceName", "value": "is"},
{"name": "accountId", "value": "$ACCOUNT_ID"},
{"name": "resourceType", "value": "backup-policy"}]
}],
"roles":[
{"role_id": "crn:v1:bluemix:public:iam::::role:Operator"}
],
"resources":[
{"attributes": [
{"name": "accountId", "value": "$ACCOUNT_ID"},
{"name": "serviceName", "operator": "stringEquals", "value": "is.volume"},
{"name": "volumeId", "operator": "stringEquals", "value": "*"}
]
}
]
}'
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"type": "access",
"description": "Editor role for the Backup service to Block Storage Snapshots",
"subjects": [
{"attributes": [
{"name": "serviceName", "value": "is"},
{"name": "accountId", "value": "$ACCOUNT_ID"},
{"name": "resourceType", "value": "backup-policy"}]
}
],
"roles":[
{"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}
],
"resources":[
{"attributes": [
{"name": "accountId", "value": "$ACCOUNT_ID"},
{"name": "serviceName", "operator": "stringEquals", "value": "is"},
{"name": "snapshotId", "operator": "stringEquals", "value": "*"}]
}
]
}'
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"type": "access",
"description": "Editor role for the Backup service to the Snapshot consistency groups",
"subjects": [
{"attributes": [
{"name": "serviceName", "value": "is"},
{"name": "accountId", "value": "$ACCOUNT_ID"},
{"name": "resourceType", "value": "backup-policy"}]
}
],
"roles":[
{"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}
],
"resources":[
{"attributes":[
{"name": "accountId", "value": "$ACCOUNT_ID"},
{"name": "serviceName", "operator": "stringEquals", "value": "is"},
{"name": "snapshotConsistencyGroupId", "operator": "stringEquals", "value": "*"}]
}
]
}'
詳しくは、 IAM ポリシー管理 の API 仕様を参照してください。
子アカウントからエンタープライズが管理するボリュームバックアップのためのクロスアカウント認証の作成
エンタープライズ管理者がバックアップを一元的に管理できるようにするには、サブアカウントが、エンタープライズ・アカウントのバックアップ・サービスが子アカウントのリソースと対話するための許可を提供する必要があります。
-
Enterprise Management API に対して API 要求を行い、親エンタープライズ・アカウントのアカウント ID を取得します。
curl -X GET "https://enterprise.cloud.ibm.com/v1/enterprises" -H "Authorization: Bearer <IAM_Token>" -H 'Content-Type: application/json'
-
次に、 IAM Policy Management API に対して、エンタープライズ・アカウントの
is.backup-policy
が子アカウントのis.backup
、is.snapshot
、is.volume
、is.snapshot-consistency-group
、およびis.instance
サービスと対話するためのサービス間許可を作成するように要求します。- editor 役割を使用して、
is.backup-policy
(ソース) がis.backup-policy
(ターゲット) と対話することを許可します。
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "type": "access", "description": "Editor role for the Enterprise account's backup service to interact with this account's backup service.", "subjects": [ {"attributes": [ {"name": "serviceName", "value": "is"}, {"name": "accountId", "value": "$ENTERPRISE_ACCOUNT_ID"}, {"name": "resourceType", "value": "backup-policy"}] } ], "roles":[ {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"} ], "resources":[ {"attributes":[ {"name": "accountId", "value": "$SUB_ACCOUNT_ID", "operator": "stringEquals"}, {"name": "serviceName", "operator": "stringEquals", "value": "is"}, {"name": "backupPolicyId", "operator": "stringEquals", "value": "*"}] } ] }'
is.backup-policy
(ソース) が オペレーター 役割でis.volume
(ターゲット) と対話することを許可します。
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "type": "access", "description": "Operator role for the Enterprise account's backup service to interact with this account's volume service", "subjects": [ { "attributes": [ {"name": "serviceName", "value": "is"}, {"name": "accountId", "value": "$ENTERPRISE_ACCOUNT_ID"}, {"name": "resourceType", "value": "backup-policy"}] } ], "roles":[ {"role_id" "crn:v1:bluemix:public:iam::::role:Operator"} ], "resources":[ {"attributes": [ {"name": "accountId", "value": "$SUB_ACCOUNT_ID"}, {"name": "serviceName", "operator": "stringEquals", "value": "is.volume"}, {"name": "volumeId", "operator": "stringEquals", "value": "*"}] } ] }'
- editor 役割を使用して、
is.backup-policy
(ソース) がis.snapshot
(ターゲット) と対話することを許可します。
curl -X POST 'https://iam.test.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "type": "access", "description": "Editor role for the Enterprise account's backup service to interact with this account's snapshots", "subjects":[ { "attributes":[ {"name": "serviceName", "value": "is"}, {"name": "accountId", "value": "$ENTERPRISE_ACCOUNT_ID"}, {"name": "resourceType", "value": "backup-policy"}] } ], "roles":[ {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"} ], "resources":[ {"attributes": [ {"name": "accountId", "value": "$SUB_ACCOUNT_ID"}, {"name": "serviceName", "operator": "stringEquals", "value": "is"}, {"name": "snapshotId", "operator": "stringEquals", "value": "*"}] } ] }'
is.backup-policy
(ソース) が オペレーター 役割でis.instance
(ターゲット) と対話することを許可します。
curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "type": "access", "description": "Operator role for the Enterprise account's backup service to interact with this account's virtual server instance service", "subjects": [ {"attributes": [ {"name": "serviceName", "value": "is"}, {"name": "accountId", "value": "$ENTERPRISE_ACCOUNT_ID"}, {"name": "resourceType", "value": "backup-policy"}] } ], "roles":[ {"role_id" "crn:v1:bluemix:public:iam::::role:Operator"} ], "resources":[ {"attributes": [ {"name": "accountId", "value": "$SUB_ACCOUNT_ID"}, {"name": "serviceName", "operator": "stringEquals", "value": "is.volume"}, {"name": "instanceId", "operator": "stringEquals", "value": "*"}] } ] }'
- editor 役割を使用して、
詳しくは、 IAM ポリシー管理 の API 仕様を参照してください。
ファイル共有バックアップの権限を作成する
お客様のアカウントでBackup for VPCを使用して、ファイル共有のポリシー、プラン、およびバックアップジョブの実行を行うには、以下のリクエストを行って、必要なサービス間認証を作成します。
curl -X POST 'https://iam.cloud.ibm.com/v2/policies'
-H 'Authorization: Bearer $TOKEN'
-H 'Content-Type: application/json'
-d '{
"type": "authorization",
"description": "IAM roles for the Backup service to Cloud File Storage",
"subject": {
"attributes": [
{"key": "serviceName","operator": "stringEquals","value": "is"},
{"key": "accountId","operator": "stringEquals","value": "a1234567"},
{"key": "resourceType","operator": "stringEquals","value": "backup-policy"}]
},
"control": {
"grant": {
"roles": [
{"role_id":"crn:v1:bluemix:public:is::::serviceRole:ShareSnapshotOperator"},
{"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}]}
},
"resource": {
"attributes": [
{"key": "accountId","operator": "stringEquals","value": "a1234567"},
{"key": "serviceName","operator": "stringEquals","value": "is"},
{"key": "shareId","operator": "stringExists","value": true}]
}
}'
エンタープライズで管理されるバックアップ用のクロスアカウント承認テンプレートの作成
エンタープライズアカウントの管理者は、子アカウントにプログラムで 認可ポリシーテンプレートの作成と割り当て 、権限を一元管理することができます。 Enterpriseのすべての子アカウントのバックアップポリシーを有効にするために使用できる承認ポリシーテンプレートを作成するには、次の手順を実行します。
-
Enterprise Management API に対して API 要求を行い、親エンタープライズ・アカウントのアカウント ID を取得します。
curl -X GET `https://enterprise.cloud.ibm.com/v1/enterprises` -H "Authorization: Bearer <IAM_Token>" -H 'Content-Type: application/json'
-
次に、 IAM Policy Management API にリクエストして、Enterprise アカウントの
is.backup-policy
が、割り当てられた子アカウントのis.backup
、is.snapshot
、is.volume
、is.snapshot-consistency-group
、およびis.instance
サービスと対話するためのサービス間権限を作成します。- editor 役割を使用して、
is.backup-policy
(ソース) がis.backup-policy
(ターゲット) と対話することを許可します。
curl -X POST 'https://iam.cloud.ibm.com/v1/policy_templates' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "name": "Centralized authorization for Backup service to work with Instances", "description": "Grant Operator Role for the Backup service to work with Instances", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy":{ "type": "authorization", "description": "Grant Operator on VPC Instances", "control":{ "grant":{ "roles":[ {"role_id": "crn:v1:bluemix:public:iam::::role:Operator"}] }}, "subject":{ "attributes":[ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "resourceType", "operator": "stringEquals", "value": "backup-policy"} ]}, "resource":{ "attributes":[ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "instanceId", "operator": "stringExists", "value": true} ]}} }
is.backup-policy
(ソース) が オペレーター 役割でis.volume
(ターゲット) と対話することを許可します。
curl -X POST 'https://iam.cloud.ibm.com/v1/policy_templates' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "name": "Centralized authorization for Backup service to work with Block Storage service", "description": "Grant Operator Role for the Backup service to work with Block Storage volumes", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy":{ "type": "authorization", "description": "Grant Operator on Block Storage for VPC volumes", "control": { "grant": { "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Operator"}] }}, "subject": { "attributes": [ {"key": "serviceName", "value": "is"}, {"key": "resourceType", "value": "backup-policy"} ]}, "resource": { "attributes": [ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "volumeId", "operator": "stringExists", "value": "true"} ]}} }'
- editor 役割を使用して、
is.backup-policy
(ソース) がis.snapshot
(ターゲット) と対話することを許可します。
curl -X POST 'https://iam.cloud.ibm.com/v1/policy_templates' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "name": "Centralized authorization for Backup service to work with Block Storage snapshots", "description": "Grant Editor Role for the Backup service to work with Block Storage snapshots", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy": { "type": "authorization", "description": "Grant Editor on Block Storage for VPC snapshots", "control": { "grant": { "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}] }}, "subject": { "attributes": [ {"key": "serviceName", "value": "is"}, {"key": "resourceType", "value": "backup-policy"} ]}, "resource": { "attributes": [ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "snapshotId", "operator": "stringExists", "value": "true"} ]}} }'
is.backup-policy
(ソース) が オペレーター 役割でis.instance
(ターゲット) と対話することを許可します。
curl -X POST 'https://iam.cloud.ibm.com/v1/policy_templates' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "name": "Centralized authorization for Backup service to work with Instances", "description": "Grant Operator Role for the Backup service to work with Instances", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy":{ "type": "authorization", "description": "Grant Operator on VPC Instances", "control":{ "grant":{ "roles":[ {"role_id": "crn:v1:bluemix:public:iam::::role:Operator"}] }}, "subject":{ "attributes":[ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "resourceType", "operator": "stringEquals", "value": "backup-policy"} ]}, "resource":{ "attributes":[ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "instanceId", "operator": "stringExists", "value": true} ]}} }`
- editor 役割を使用して、
is.backup-policy
(ソース) がis.snapshotConsistencyGroup
(ターゲット) と対話することを許可します。
curl -X POST 'https://iam.cloud.ibm.com/v1/policy_templates' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "name": "Centralized authorization for Backup service to work with snapshot consistency groups", "description": "Grant Editor Role for the Backup service to work with snapshot consistency groups", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy": { "type": "authorization", "description": "Grant Editor on snapshot consistency groups", "control": { "grant": { "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}] }}, "subject": { "attributes": [ {"key": "serviceName", "value": "is"}, {"key": "resourceType", "value": "backup-policy"} ]}, "resource": { "attributes": [ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "snapshotConsistencyGroupId", "operator": "stringExists", "value": "true"} ]}} }`
- 承認
is.backup-policy
(出典)と交流するis.share
(ターゲット) に_エディター_ および_共有スナップショット オペレーターの_役割を割り当てます。
curl -X POST 'https://iam.cloud.ibm.com/v1/policy_templates' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{ "name": "Centralized authorization for Backup service to work with File shares", "description": "Grant Editor Role for the Backup service to work with File shares", "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID", "policy": { "type": "authorization", "description": "Grant Editor, and Share Snapshot Operator roles on File shares", "control": { "grant": { "roles": [ {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}, {"role_id": "crn:v1:bluemix:public:iam::::role:ShareSnapshotOperator"}]} }, "subject": { "attributes": [ {"key": "serviceName", "value": "is"}, {"key": "resourceType", "value": "backup-policy"}] }, "resource": { "attributes": [ {"key": "serviceName", "operator": "stringEquals", "value": "is"}, {"key": "shareId", "operator": "stringExists", "value": "true"}] } } }'
- editor 役割を使用して、
詳しくは、 IAM ポリシー管理 の API 仕様を参照してください。
Event Notificationsに対する認証の作成
Event Notificationsのサービス間認可ポリシーを作成するには、is.backup-policy
(ソース)に「EventSourceManager
ロールを持つ「event-notification
(ターゲット)へのアクセスを許可するAPIリクエストを行う。
curl -X POST 'https://iam.cloud.ibm.com/v2/policies' -H
'Authorization: Bearer $TOKEN' -H
'Content-Type: application/json' -d
'{
"type": "access",
"description": "Event Source Manager role for the backup service to interact with the Event notification service",
"subjects": [
{"attributes": [
{"name": "serviceName", "value": "is"},
{"name": "resourceType", "value": "backup-policy"}]
}
],
"roles":[
{"role_id" "crn:v1:bluemix:public:iam::::role:EventSourceManager"}
],
"resource":[
{"attributes": [
{"name": "serviceName", "operator": "stringEquals", "value": "event-notification"},
{"name": "instanceId", "operator": "stringEquals", "value": "<en-instance-ID>"}]
}
]
}'
Terraform を使用した許可ポリシーの作成
アカウント・レベルでのボリューム・バックアップの権限作成
main.tf
ファイル内の ibm_iam_authorization_policy
リソース引数を使用して、サービス間の許可ポリシーを作成します。
resource "ibm_iam_authorization_policy" "policy1" {
subject_attributes {
name = "accountId"
value = data.ibm_iam_account_settings.iam.account_id
}
subject_attributes {
name = "serviceName"
value = "is"
}
subject_attributes {
name = "resourceType"
value = "backup-policy"
}
resource_attributes {
name = "accountId"
operator = "stringEquals"
value = data.ibm_iam_account_settings.iam.account_id
}
resource_attributes {
name = "serviceName"
operator = "stringEquals"
value = "is"
}
resource_attributes {
name = "volumeId"
operator = "stringExists"
value = "true"
}
roles = ["Operator"]
}
resource "ibm_iam_authorization_policy" "policy2" {
subject_attributes {
name = "accountId"
value = data.ibm_iam_account_settings.iam.account_id
}
subject_attributes {
name = "serviceName"
value = "is"
}
subject_attributes {
name = "resourceType"
value = "backup-policy"
}
resource_attributes {
name = "accountId"
operator = "stringEquals"
value = data.ibm_iam_account_settings.iam.account_id
}
resource_attributes {
name = "serviceName"
operator = "stringEquals"
value = "is"
}
resource_attributes {
name = "snapshotId"
operator = "stringExists"
value = "true"
}
roles = ["Editor"]
}
resource "ibm_iam_authorization_policy" "policy3" {
subject_attributes {
name = "accountId"
value = data.ibm_iam_account_settings.iam.account_id
}
subject_attributes {
name = "serviceName"
value = "is"
}
subject_attributes {
name = "resourceType"
value = "backup-policy"
}
resource_attributes {
name = "accountId"
operator = "stringEquals"
value = data.ibm_iam_account_settings.iam.account_id
}
resource_attributes {
name = "serviceName"
operator = "stringEquals"
value = "is"
}
resource_attributes {
name = "snapshotConsistencyGroupId"
operator = "stringExists"
value = "true"
}
roles = ["Editor"]
}
resource "ibm_iam_authorization_policy" "policy4" {
subject_attributes {
name = "accountId"
value = data.ibm_iam_account_settings.iam.account_id
}
subject_attributes {
name = "serviceName"
value = "is"
}
subject_attributes {
name = "resourceType"
value = "backup-policy"
}
resource_attributes {
name = "accountId"
operator = "stringEquals"
value = data.ibm_iam_account_settings.iam.account_id
}
resource_attributes {
name = "serviceName"
operator = "stringEquals"
value = "is"
}
resource_attributes {
name = "instanceId"
operator = "stringExists"
value = "true"
}
roles = ["Operator"]
}
引数および属性について詳しくは、 許可リソースに関する Terraform の資料を参照してください。
ファイル共有バックアップの権限を作成する
main.tf
ファイル内の ibm_iam_authorization_policy
リソース引数を使用して、サービス間の許可ポリシーを作成します。
resource "ibm_iam_authorization_policy" "policy1" {
source_service_name = "is"
source_resource_type = "backup-policy"
target_service_name = "is"
target_resource_type = "share"
roles = ["ShareSnapshotOperator,Editor"]
}
引数および属性について詳しくは、 許可リソースに関する Terraform の資料を参照してください。
Event Notificationsに対する認証の作成
Event Notificationsのサービス間認可ポリシーを作成するには、「main.tf
ファイルの「ibm_iam_authorization_policy
リソース引数を使用する。
resource "ibm_iam_authorization_policy" "en-policy" {
source_service_name = "is"
source_resource_type = "backup-policy"
source_resource_instance_id = ibm_backup-policy_instance.instance.guid
target_service_name = "event-notification"
target_resource_instance_id = ibm_event-notification_instance.instance.guid
roles = ["EventSourceManager"]
}
引数および属性について詳しくは、 許可リソースに関する Terraform の資料を参照してください。