バックアップ・サービスに対するサービス間許可の確立

「 IBM Cloud Backup for VPC」がリソースタグを検出し、ブロックボリュームおよびファイル共有のバックアップスナップショットを作成できるように、サービス間認証と ユーザーロールを 設定します。

概要

IBM Cloud Backup for VPC サービスを動作させるには、サービスの承認を提供する必要があります。 認証において、ソースサービスにはターゲットサービスへのアクセス権が付与されます。 選択した役割によって、ソース・サービスのアクセス・レベルが定義されます。 ターゲットサービスとは、割り当てたロールに基づいて、ソースサービスからのアクセスを許可するサービスのことです。 ソース・サービスは、許可が作成されたのと同じアカウントに含めることも、別のアカウントに含めることもできます。 ターゲット・サービスは常に、許可が作成されたアカウント内にあります。

バックアップ・ポリシーを作成し、バックアップ・ジョブを正しく実行するには、バックアップ・サービスが Block Storage for VPC、VPC のスナップショット、および Virtual Server for VPC サービスを処理する権限を持っている必要があります。

アカウントおよびアカウントのバックアップポリシーを作成したいアカウント、同様に承認を受ける必要があります。 具体的には、 アカウントバックアップサービスが、サブアカウントのバックアップサービスと連携できるよう、権限が付与されている必要があります。

バックアップポリシーを作成し、ファイル共有のバックアップジョブを正しく実行するには、バックアップサービスが File Storage for VPCで動作するように許可されている必要があります。

許可について詳しくは、 許可を使用したサービス間のアクセス権限の付与 を参照してください。

サービス許可を誤ってセットアップした場合、バックアップ・サービスはバックアップ・ポリシーを作成できません。 詳細については、トラブルシューティングのトピックを参照してください バックアップポリシーを作成しようとすると、サービスの承認エラーが発生します。

コンソールで認可ポリシーを作成する

アカウント・レベルでのボリューム・バックアップの権限作成

サービス間許可ポリシーを作成するには、以下の手順を実行します。

  1. IBM Cloud コンソールで、 [管理] > [アクセス (IAM) ] の順に選択します。
  2. サイド・パネルから、権限を選択します。
  3. 許可の管理」ページで、作成をクリックします。
  4. の中にソースセクションで、ソースアカウント。 アカウントでバックアップサービスの承認を設定する際に、このアカウント次へ をクリックします。
  5. ソース・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. クリックして範囲を選択します特定のリソース
    2. 属性を選択 」をクリックします。
    3. リストから選択リソースタイプ
    4. 次のフィールドで、IBM Cloud Backup for VPC を選択します。
    5. 次へ をクリックします。
  6. ターゲット・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. クリックして範囲を選択します特定のリソース
    2. 属性を選択 」をクリックします。
    3. 「リソース・タイプ」 をクリックします。 以下のサービスから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 オペレーター

(オプション)認証の範囲を特定の仮想サーバーインスタンスに限定するには、 [条件を追加 ] をクリックし、属性リストから [ インスタンス ID ] を選択します。 次に、メニューから特定のインスタンスを選択してください。

承認範囲を特定のインスタンスに限定すると、他のインスタンスにアタッチされているボリュームのバックアップが失敗します。 Virtual Server for VPC に条件を追加する場合、バックアップが必要なボリュームを持つ各インスタンスごとに、個別の承認ポリシーを作成する必要があります。 詳細については、「 認証スコープに関する問題のトラブルシューティング 」を参照してください。

  1. 次へ をクリックします。
  2. 役割を選択します。 詳細については、該当する役割の表を参照してください。
  3. クリックレビュー選択内容を確認します。
  4. 「許可」 をクリックします。
  5. 「許可の管理」 ページに戻ったら、 「作成」 を再度クリックし、同じ手順に従って残りのサービスの許可をセットアップします。

アカウントレベルでのファイル共有バックアップの権限作成

サービス間許可ポリシーを作成するには、以下の手順を実行します。

  1. IBM Cloud コンソールで、 [管理] > [アクセス (IAM) ] の順に選択します。
  2. サイド・パネルから、権限を選択します。
  3. 許可の管理」ページで、作成をクリックします。
  4. の中にソースセクションで、ソースアカウント。 アカウントでバックアップサービスの承認を設定する際に、このアカウント次へ をクリックします。
  5. ソース・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. クリックして範囲を選択します特定のリソース
    2. 属性を選択 」をクリックします。
    3. リストから選択リソースタイプ
    4. 次のフィールドで、IBM Cloud Backup for VPC を選択します。
    5. 次へ をクリックします。
  6. ターゲット・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. クリックして範囲を選択します特定のリソース
    2. 属性を選択 」をクリックします。
    3. 「リソース・タイプ」 をクリックします。 選択 File Storage for VPC.
  7. 次へ をクリックします。
  8. 役割を選択: エディター 、共有スナップショットオペレーター
  9. クリックレビュー選択内容を確認します。
  10. 「許可」 をクリックします。

子アカウントからEnterpriseアカウントで管理されるバックアップのためのクロスアカウント認証の作成

エンタープライズ管理者がバックアップを一元的に管理できるようにするには、サブアカウントが、 アカウントバックアップサービスに対し、自身のリソースを操作する権限を付与する必要があります。 アカウントの管理者は、以下の手順に従って、 アカウントローカルに権限を設定することができます。

  1. IBM Cloud コンソールで、 [管理] > [アクセス (IAM) ] の順に選択します。
  2. サイド・パネルから、権限を選択します。
  3. 許可の管理」ページで、作成をクリックします。
  4. の中にソースセクションで、ソースアカウント。 エンタープライズアカウントのバックアップサービスの承認を設定する場合は、特定のアカウントをクリックし、エンタープライズ アカウントの ID を入力します。 次へ をクリックします。
  5. ソース・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. クリックして範囲を選択します特定のリソース
    2. 属性を選択 」をクリックします。
    3. リストから選択リソースタイプ
    4. 次のフィールドで、IBM Cloud Backup for VPC を選択します。
    5. 次へ をクリックします。
  6. ターゲット・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。
    1. クリックして範囲を選択します特定のリソース
    2. 属性を選択 」をクリックします。
    3. 「リソース・タイプ」 をクリックします。 表 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 編集者、共有スナップショットオペレーター
  1. 次へ をクリックします。
  2. 役割を選択します。 詳細については、表2を参照し、該当する役割を確認してください。
  3. クリックレビュー選択内容を確認します。
  4. 「許可」 をクリックします。
  5. 「許可の管理」 ページに戻ったら、 「作成」 を再度クリックし、同じ手順に従って残りのサービスの許可をセットアップします。

エンタープライズで管理されるバックアップ用のクロスアカウント承認テンプレートの作成

承認テンプレート を使用すると、エンタープライズアカウントの管理者は承認ポリシーを作成し、それをアカウントに割り当てることができます。 これにより、管理者が各アカウントに個別にログインすることなく、その承認がそれらのアカウントに適用されます。

  1. IBM Cloud コンソールで、[ 管理] > [アクセス (IAM)] > [エンタープライズ] > [テンプレート ] の順に選択します。
  2. 「許可」 を選択し、「作成」 をクリックします。
  3. 認証テンプレートの名前と説明を入力します。
  4. エンタープライズ管理された承認ポリシーについて、子アカウントユーザーに対する目的を説明する説明を入力します。
  5. 「作成」 をクリックします。

次に、以下のステップを完了し、認証ルールを構築する:

  1. 認可に進み、認可ポリシーの詳細を指定する。
  2. ソース・サービスが別のサービスへのアクセスを要求するアカウントを選択します。 Assigned account(s) を選択します。 後でこの権限テンプレートをアカウント割り当てると、「 アカウント 」フィールドは、アクセス対象のリソースを保持しているアカウントに合わせて自動的に設定されます。
  3. 次に、ソース・サービスとリソースを選択する。
    1. リストから「 VPC インフラストラクチャ サービス 」を選択します。 **「次へ」**をクリックします。
    2. クリックして範囲を選択します特定のリソース
    3. 属性を選択 」をクリックします。
    4. リストから選択リソースタイプ
    5. 次のフィールドで、IBM Cloud Backup for VPC を選択します。
  4. ターゲット・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。
    1. クリックして範囲を選択します特定のリソース
    2. 属性を選択 」をクリックします。
    3. リストから選択リソースタイプ。 次の表にあるサービスの中から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 Backup for VPC IBM Cloud Backup for VPC エディター
IBM Cloud Backup for VPC File Storage for VPC 編集者、共有スナップショットオペレーター
  1. 次へ をクリックします。
  2. 役割を選択します。 詳細については、該当する役割の表を参照してください。
  3. クリックレビュー選択内容を確認します。 続いて、**「保存」**をクリックします。
  4. テンプレートをコミットし、 アカウントに割り当てます。 ステップを繰り返して、すべてのサービスの承認テンプレートを作成する。

Event Notificationsに対する認証の作成

Event Notificationsのサービス間認可ポリシーを作成するには、以下の手順に従ってください:

  1. IBM Cloud コンソールで、 [管理] > [アクセス (IAM) ] の順に選択します。
  2. サイド・パネルから、権限を選択します。
  3. 許可の管理」ページで、作成をクリックします。
  4. の中にソースセクションで、ソースアカウント。 アカウントでバックアップサービスの承認を設定する際に、このアカウント次へ をクリックします。
  5. ソース・サービスについて、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. クリックして範囲を選択します特定のリソース
    2. 属性を選択をクリックし、リストからリソースタイプを選択します。
    3. 次のフィールドで、IBM Cloud Backup for VPC を選択します。
    4. 次へ をクリックします。
  6. 対象サービスとして Event Notifications をターゲットサービスとして選択します。 **「次へ」**をクリックします。
    1. クリックして範囲を選択します特定のリソース
    2. 属性を選択 」をクリックします。
    3. serviceInstance をクリックします。
    4. 次のフィールドで、 文字列「equals 」を選択する。
    5. 次のフィールドで、認証したいEvent Notificationsサービス・インスタンスを選択します。
  7. **「イベント・ソース・マネージャー」**ロールを選択します。
  8. クリックレビュー選択内容を確認します。
  9. 「許可」 をクリックします。

CLI からの許可ポリシーの作成

アカウント・レベルでのボリューム・バックアップの権限作成

アカウントの「Backup for VPC」を使用してポリシーやプランを作成し、ブロックストレージボリュームのバックアップジョブを実行するには、以下のサービス間認証を作成してください

  • オペレーター 役割を持つ backup-policy (ソース) から instance (ターゲット) へ
  • オペレーター 役割を持つ backup-policy (ソース) から volume (ターゲット) へ
  • 「エディター」 役割を持つ backup-policy (ソース) から snapshot (ターゲット) へ
  • 「エディター」 役割を持つ backup-policy (ソース) から snapshot-consistency-group (ターゲット) へ
  1. 許可ポリシーに関する以下の情報を含む 4 つの JSON ファイルを作成します。

例にあるワイルドカード値("*" )はそのまま残してください。 ワイルドカードを特定のリソースIDに置き換えると、認証の範囲が制限され、バックアップが失敗します。 詳細については、「 認証スコープに関する問題のトラブルシューティング 」を参照してください。

  • インスタンス・サービス:
    {
      "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": "*"}]}]
    }
    
  1. 次に、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 を参照してください。

エンタープライズで管理されるバックアップ用のクロスアカウント承認テンプレートの作成

エンタープライズアカウントの管理者は、 承認ポリシーテンプレートの作成と割り当て を使用してアカウントにアクセスし、権限を一元的に管理できます。 エンタープライズ内のすべてアカウントでバックアップポリシーに使用する認証ポリシーテンプレートを作成するには、以下の手順を実行してください。

  1. エンタープライズ・ルート・アカウントIDを取得するには、以下のコマンドを実行する。
ibmcloud enterprise show
  1. 認可ポリシーテンプレートの定義を提供する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"}]
             }
           }
      }
    
  1. 以下のサンプル・リクエストに示すように、JSONファイルを指定して authorization-policy-template-create コマンドを実行する:

    ibmcloud iam authorization-policy-template-create --file /path/to/vpc-share-authorization-template.json
    
  2. これをすべてのJSONファイルについて繰り返す。 完了したら、テンプレートをコミットして子アカウントに割り当てる準備ができます。

  3. 以下のコマンドを実行して、テンプレートのバージョンをコミットし、テンプレートをターゲットアカウントに割り当てます。

    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 (ソース) to is.snapshot-consistency-group with editor 役割

以下の例のように、 IAM ポリシー管理 API に対して要求を行います。

例にあるワイルドカード値("*" )はそのまま残してください。 ワイルドカードを特定のリソースIDに置き換えると、認証の範囲が制限され、バックアップが失敗します。 詳細については、「 認証スコープに関する問題のトラブルシューティング 」を参照してください。

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 仕様を参照してください。

子アカウントからエンタープライズが管理するボリュームバックアップのためのクロスアカウント認証の作成

エンタープライズ管理者がバックアップを一元的に管理できるようにするには、サブアカウントが、エンタープライズ・アカウントのバックアップ・サービスが子アカウントのリソースと対話するための許可を提供する必要があります。

  1. 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'
    
  2. 次に、 IAM Policy Management API に対して、エンタープライズ・アカウントの is.backup-policy が子アカウントの is.backupis.snapshotis.volumeis.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.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": "*"}]
        }
       ]
    }'
    

詳しくは、 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}]
     }
    }'

エンタープライズで管理されるバックアップ用のクロスアカウント承認テンプレートの作成

エンタープライズアカウントの管理者は、 承認ポリシーテンプレートの作成と割り当て を使用してアカウントにプログラムでアクセスし、権限を一元的に管理することができます。 エンタープライズ内のすべてアカウントでバックアップポリシーに使用する認証ポリシーテンプレートを作成するには、以下の手順を実行してください。

  1. 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'
    
  2. 次に、 IAM Policy Management API にリクエストして、Enterprise アカウントの is.backup-policy が、割り当てられた子アカウントの is.backupis.snapshotis.volumeis.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"}]
             }
           }
      }'
    
  3. 権限テンプレートを作成したら、それを コミットし てアカウントに 割り当てる 必要があります。

詳しくは、 IAM ポリシー管理 の API 仕様を参照してください。

Event Notificationsに対する認証の作成

Event Notifications event-notification 向けのサービス間認証ポリシーを作成するには、API リクエストを送信し、 (送信元)が (宛先)に対して「 」ロールによるアクセス権限を付与するように設定します。 is.backup-policy EventSourceManager

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 リソース引数を使用して、サービス間の許可ポリシーを作成します。

リソース属性については、 operator = "stringExists" value = "true" に合わせてください。 特定のリソースIDを指定して "stringEquals" に変更すると、認証の範囲が制限され、バックアップが失敗します。 詳細については、「 認証スコープに関する問題のトラブルシューティング 」を参照してください。

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 の資料を参照してください。

次のステップ