File Storage for VPC のサービス間許可を確立しています

File Storage for VPC お客様暗号化、 アカウント共有、およびリージョン間レプリケーションについて、IAMのサービス間認証を設定します。

Cloud Identity and Access Management (IAM)を使用すると、あるサービスが別のサービスにアクセスできるようにする承認を作成または削除することができます。

概要

許可におけるソース・サービスとは、ターゲット・サービスへのアクセス権限を付与されたサービスです。 選択した役割によって、ソース・サービスのアクセス・レベルが定義されます。 ターゲット・サービスとは、割り当てる役割に基づいて、ソース・サービスがアクセスする許可を付与するサービスです。 通常、ソースサービスは、承認が作成されたアカウントと同じアカウントにある場合もあれば、別のアカウントにある場合もあります。 ターゲット・サービスは常に、許可が作成されたアカウント内にあります。

File Storage for VPC では、以下の項目についてサービス間認証を設定する必要があります:

  • お客様暗号化の設定:

    カスタマ・ルート鍵(CRK)で暗号化ファイル共有を作成するには、まずCRKを保持する鍵管理サービス(KMS)のインスタンスが必要です。 Key Protect のシングルテナントインスタンスとマルチテナントインスタンスのいずれかを選択できます。 次に、ファイル・サービスとKMSインスタンス間のサービス間認証を確立する必要がある。 認証は、カスタマ・ルート・キーを所有しホストするアカウントで作成されなければならない。 CRKを保持するアカウントがソースで、ファイル共有を作成するアカウントがターゲットである。

    Hyper Protect Crypto Services は非推奨となっています。 顧客は既存のインスタンスを2027年3月20日まで使用できる。 詳細については、「 IBM Cloud Hyper Protect Crypto Services の非推奨化 」を参照してください。 継続的な保護のため、既存の暗号化キーを専用 Key Protect インスタンスに移行することをご検討ください。 詳細については、「 移行ガイド 」をご覧ください。

  • 地域間非同期レプリケーションの設定:

    リージョン間のレプリケーションを行うには、サービス間の認証を設定し、異なるVPCにある各 File Storage Serviceインスタンスの ユーザーロールを 指定する必要があります。 この承認により、あるVPC内の File Storage サービスが、別のVPC内の File Storage サービスと連携できるようになります。 両方の VPC が同じアカウントに属している必要があります。 アカウント間の複製はサポートされていません。

    詳細については、「 レプリケーションの概要 」を参照してください。

  • アカウントアクセス設定

    クロスアカウント・アクセスでは、2つの異なるアカウントの File Storage サービス間でサービス間認証を確立する必要がある。 この認証は、ファイル共有を所有しホストしているアカウントで作成する必要があります。 また、アクセサー共有と共有バインディングを作成および管理できるように、両方のアカウントで ユーザーロールを 指定する必要があります。 詳細については、 別のアカウントからのファイル共有の共有とマウントを 参照してください。

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

コンソールで顧客管理暗号化の認可を作成する

  1. IBM Cloud コンソールで、鍵管理サービス(KMS)とカスタマ・ルート鍵(CRK)があるアカウントにログインする。
  2. [管理] > [アクセス (IAM) ] に移動します。
  3. サイド・パネルから、権限を選択します。
  4. 許可の管理」ページで、作成をクリックします。
  5. 「ソース」 セクションで、 「ソース・アカウント」 を選択します。 このアカウントは、CRKを使用して顧客管理の暗号化されたファイル共有を作成するためのものです。
    • 別のアカウントのファイル共有を暗号化するために、このアカウントからのCRKの使用を許可するには、 [特定のアカウント ]を選択し、ファイルサービスのアカウントの32文字のアカウントIDを入力します。 そして、「次へ (Next)」 をクリックします。
    • それ以外の場合は、 「このアカウント」 を選択します。 そして、「次へ (Next)」 をクリックします。
  6. ソース・サービスとして、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. 「特定のリソース」 をクリックしてスコープを選択します。
    2. 属性を選択 」をクリックします。
    3. リストから 「リソース・タイプ」 を選択します。
    4. 次のフィールドで、 File Storage for VPC を選択します。
    5. 次へ をクリックします。
  7. 対象のサービスについては、 KeyProtect リストから選択してください。 **「次へ」**をクリックします。
  8. Reader 」というロールを選択してください。
  9. ソース・サービスおよび従属サービスによって許可が委任されるようにするには、このボックスにチェック・マークを付けます。
  10. 「レビュー」 をクリックして、選択内容を調べます。
  11. 「許可」 をクリックします。

コンソールでクロスリージョンレプリケーションの権限を作成する

  1. IBM Cloud コンソールで、ファイル共有があるアカウントにログインする。
  2. [管理] > [アクセス (IAM) ] に移動します。
  3. サイド・パネルから、権限を選択します。
  4. 許可の管理」ページで、作成をクリックします。
  5. 「ソース」 セクションで、 「ソース・アカウント」 を選択します。 「 このアカウント 」を選択し、「 次へ 」をクリックします。
  6. ソース・サービスとして、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. 「特定のリソース」 をクリックしてスコープを選択します。
    2. 属性を選択 」をクリックします。
    3. リストから 「リソース・タイプ」 を選択します。
    4. 次のフィールドで、 File Storage for VPC を選択します。
    5. 次へ をクリックします。
  7. ターゲット・サービスについては、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. 「特定のリソース」 をクリックしてスコープを選択します。
    2. 属性を選択 」をクリックします。
    3. リストから 「リソース・タイプ」 を選択します。
    4. 次のフィールドで、 File Storage for VPC を選択します。
    5. 次へ をクリックします。
  8. Editor 」というロールを選択してください。
  9. 「レビュー」 をクリックして、選択内容を調べます。
  10. 「許可」 をクリックします。

エンタープライズ内のすべてのアカウントクロスリージョンレプリケーションの承認の作成

エンタープライズアカウント管理者は、 アカウント 認可ポリシーテンプレートの作成と割り当て 、権限を一元管理することができます。 Enterpriseのすべてのアカウントクロスリージョンレプリケーションを有効にするために使用できる承認ポリシーテンプレートを作成するには、次の手順を実行します:

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

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

  1. 認可に進み、認可ポリシーの詳細を指定する。
  2. 指定アカウント を選択する。 認可テンプレートを子アカウント割り当てると、アクセスアカウント、アクセスされるリソースを保持するアカウント同じアカウント番号が入力されます。
  3. 次に、ソース・サービスとリソースを選択する。
    1. リストから「 VPC インフラストラクチャ サービス 」を選択します。 **「次へ」**をクリックします。
    2. 「特定のリソース」 をクリックしてスコープを選択します。
    3. 属性を選択 」をクリックします。
    4. リストから 「リソース・タイプ」 を選択します。
    5. 次のフィールドで、 File Storage for VPC を選択します。
    6. 次へ をクリックします。
  4. ターゲット・サービスについては、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. 「特定のリソース」 をクリックしてスコープを選択します。
    2. 属性を選択 」をクリックします。
    3. リストから 「リソース・タイプ」 を選択します。
    4. 次のフィールドで、 File Storage for VPC を選択します。
    5. 次へ をクリックします。
  5. Editor 」というロールを選択してください。
  6. 確認 」をクリックして、「 保存 」をクリックします。
  7. これでテンプレートをコミットし、 アカウント割り当てる準備ができた。

コンソールでクロスアカウントアクセスの認可を作成する

この権限は、アクセサ共有の作成およびアカウント間のデータ共有を目的としています。

  1. IBM Cloud コンソールで、ファイル共有があるアカウントにログインする。
  2. [管理] > [アクセス (IAM) ] に移動します。
  3. サイド・パネルから、権限を選択します。
  4. 許可の管理」ページで、作成をクリックします。
  5. 「ソース」 セクションで、 「ソース・アカウント」 を選択します。
    • 別のアカウントがファイル共有上のデータにアクセスできるようにするには、 「特定のアカウント」 を選択し、32 文字の長さのアカウント ID を入力します。 そして、「次へ (Next)」 をクリックします。
    • 同じアカウントにアクセサー共有を作成する場合は、 「次のアカウント」 を選択します。 そして、「次へ (Next)」 をクリックします。
  6. ソース・サービスとして、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. 「特定のリソース」 をクリックしてスコープを選択します。
    2. 属性を選択 」をクリックします。
    3. リストから 「リソース・タイプ」 を選択します。
    4. 次のフィールドで、 File Storage for VPC を選択します。
    5. 次へ をクリックします。
  7. ターゲット・サービスについては、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. 「特定のリソース」 をクリックしてスコープを選択します。
    2. 属性を選択 」をクリックします。
    3. リストから 「リソース・タイプ」 を選択します。
    4. 次のフィールドで、 File Storage for VPC を選択します。
    5. **「条件の追加」**をクリックします。
    6. 「属性の選択」 をクリックし、 「共有 ID」 を選択します。
    7. リストから共有を選択します。
    8. 次へ をクリックします。
  8. Share Broker 」というロールを選択してください。
  9. 「レビュー」 をクリックして、選択内容を調べます。
  10. 「許可」 をクリックします。

コンソールで Watson Studio の認証を作成する

  1. IBM Cloud コンソールで、ファイル共有があるアカウントにログインする。
  2. [管理] > [アクセス (IAM) ] に移動します。
  3. サイド・パネルから、権限を選択します。
  4. 許可の管理」ページで、作成をクリックします。
  5. 「サービス許可の付与」 ページで、 「このアカウント」 を選択します。
  6. ソース・サービスとして、リストから Watson Studio を選択します。
    1. 「特定のリソース」 をクリックしてスコープを選択します。
    2. 属性を選択 」をクリックします。
    3. リストから「 ソースサービスインスタンス 」を選択してください。
    4. 次のフィールドで、 「すべてのインスタンス」 を選択します。
    5. 次へ をクリックします。
  7. ターゲット・サービスについては、リストから 「VPC インフラストラクチャー・サービス」 を選択します。 **「次へ」**をクリックします。
    1. 「特定のリソース」 をクリックしてスコープを選択します。
    2. 属性を選択 」をクリックします。
    3. リストから 「リソース・タイプ」 を選択します。
    4. 次のフィールドで、 File Storage for VPC を選択します。
    5. **「条件の追加」**をクリックします。
    6. 「属性の選択」 をクリックし、 「共有 ID」 を選択します。
    7. 文字列イコール・ フィールドはそのままにしておく。
    8. 次のフィールドで、リストから起点共有を選択します。
    9. 次へ をクリックします。
  8. Share Broker 」というロールを選択してください。
  9. ソース・サービスおよび従属サービスによって許可が委任されるようにするには、このボックスにチェック・マークを付けます。
  10. 「レビュー」 をクリックして、選択内容を調べます。
  11. 「許可」 をクリックします。

CLIから顧客管理型暗号化の認可を作成する

アカウントにログインします。 ibmcloud iam authorization-policy-create コマンドを実行して、 File Storage Service が Key Protect のインスタンスと連携するための認証ポリシーを作成します。 ソースサービスは is--source-resource-type share )で、ターゲットサービスは kms です。 割り当てる必要があるロールは「 Reader 」です。 次の例では、 File Storage サービスと Key Protect との間で認証ポリシーを作成します。

ibmcloud iam authorization-policy-create is kms Reader --source-resource-type share
Creating authorization policy under account a1234567 as test.user@ibm.com...
OK

アカウントに対して既に設定されているサービス許可をリストするには、 ibmcloud iam authorization-policies コマンドを実行します。 次の例は、 Key Protect に保存されている CRK を使用して、ファイル共有を暗号化できることを示しています。

ibmcloud iam authorization-policies
Getting authorization policies under account a1234567 as test.user@ibm.com...
OK
ID:                        d2df60ea-5575-4bd1-9cd6-f35c52576577
Source service name:       is
Source service instance:   All instances
Source resource type:      share
Target service name:       kms
Target service instance:   All instances
Roles:                     Authorization Delegator, Reader

このコマンドで利用可能なすべてのパラメーターについて詳しくは、ibmcloud iam authorization-policy-create を参照してください。

CLIからクロスアカウント暗号化の認証を作成する

Key Protect のインスタンスが登録されているアカウントにログインしてください。 ibmcloud iam authorization-policy-create コマンドを実行して、File サービスが KMS とやり取りするための認可ポリシーを作成する。 ソースサービスは is--source-resource-type share )で、ターゲットサービスは kms です。 割り当てる必要があるロールは「 Reader 」です。 次の例では、 KeyUserAccount のファイルサービスと、 KeyOwnerAccount の Key Protect インスタンスとの間で、認証ポリシーを作成します。

  1. ローカルの Documents フォルダに、認可ポリシーに関する以下の情報を含む JSON ファイルを作成します。

    '{
       "description":"Reader and Delegator role for KeyProtect service instance",
       "resources": [{"attributes": [
             {"name": "KeyOwnerAccountID","value": "a/a1234567","operator": "stringEquals"},
             {"name":"serviceName","operator":"stringEquals","value":"kms"}]}],
       "roles": [
          {"role_id":"crn:v1:bluemix:public:iam::::role:AuthorizationDelegator"},
          {"role_id":"crn:v1:bluemix:public:iam::::serviceRole:Reader"}],
       "subjects": [
          {"name": "serviceName","value": "is"},
             {"name": "resourceType","value": "share"},
             {"name": "KeyUserAccountID","value": "a/a7654321"}],
       "type":"authorization"
    }'
    
  2. 次に、JSONファイルを指定して以下のCLIコマンドを実行し、認証ポリシーを作成する。

    ibmcloud iam authorization-policy-create --file ~/Documents/policy.json
    

    クロスアカウント認証は一方通行で、キーとサービスに固有である。 アカウントAが自分の鍵をアカウントBのファイルサービスで使用することを承認すると、 アカウントBはアカウントAのCRKを使用してアカウントBの共有物を暗号化できる。 しかし、Account Aは、Account Bのルート鍵を使用してAccount Aの共有を暗号化することはできない。

CLIからクロスリージョンレプリケーションの権限を作成する

ibmcloud iam authorization-policy-create コマンドを実行して、リージョン・ファイル・サービスが連携することを許可します。

ibmcloud iam authorization-policy-create is is Editor --source-resource-type share --target-resource-type share

以下の例を参照してください。

$ ibmcloud iam authorization-policy-create is is Editor --source-resource-type share --target-resource-type share
Creating authorization policy under account a1234567 as test.user@ibm.com...
OK
Authorization policy f311f255-d20e-49d0-aa94-316feaba981e was created.
ID:                        f311f255-d20e-49d0-aa94-316feaba981e
Source service name:       is
Source service instance:   All instances
Source resource type:      share
Target service name:       is
Target service instance:   All instances
Target resource type:      share
Roles:                     Editor

このコマンドで利用可能なすべてのパラメーターについて詳しくは、ibmcloud iam authorization-policy-create を参照してください。

エンタープライズのすべてのアカウントクロスリージョンレプリケーションの承認の作成

エンタープライズアカウント管理者は、 アカウント 認可ポリシーテンプレートの作成と割り当て 、権限を一元管理することができます。 Enterpriseのすべてのアカウントクロスリージョンレプリケーションを有効にするために使用できる承認ポリシーテンプレートを作成するには、次の手順を実行します。

  1. 認可ポリシー・テンプレートの定義を提供するJSONファイルを作成する。 JSON ファイルで使用できる属性の詳細については、 IAM Policy Management API を参照してください。

    以下のJSONファイルの例では、テンプレートの namedescription 、エンタープライズ・ アカウント account_id。 権限テンプレートは、割り当てられたアカウント内のすべての" File Storage for VPC "に編集者ロールを付与します。

        {
          "name": "VPC_REGIONAL_REPLICATOR",
          "description": "Grant Editor Role between VPC File Storage to enable regional replication",
          "account_id": "ENTERPRISE_ROOT_ACCOUNT_ID",
          "policy": {
            "type": "authorization",
            "description": "Grant Editor on VPC File Storage",
            "control": {
                "grant": {
                "roles": [
                  {
                    "role_id": "crn:v1:bluemix:public:iam::::role:Editor"
                  }
                ]
              }
            },
            "subject":
              {
                "attributes": [
                  {
                    "key": "serviceName",
                    "operator": "stringEquals",
                    "value": "is"
                  },
                  {
                    "key": "resourceType",
                    "operator": "stringEquals",
                    "value": "share"
                  }
                ]
              }
            ,
            "resource":
              {
                "attributes": [
                  {
                    "key": "serviceName",
                    "operator": "stringEquals",
                    "value": "is"
                  },
                  {
                    "key": "resourceType",
                    "operator": "stringEquals",
                    "value": "share"
                  }
                ]
              }
          }
    }
    
  2. 以下のサンプル・リクエストに示すように、JSONファイルを指定して authorization-policy-template-create コマンドを実行する:

ibmcloud iam authorization-policy-template-create --file /path/to/vpc-share-authorization-template.json

このコマンドで使用できるすべてのパラメータの詳細については、 IAMアクセス、APIキー、信頼済みプロファイル、サービスID、およびアクセスグループの管理(ibmcloud iam) CLIリファレンスを参照してください。

CLIからクロスアカウント・アクセスの認証を作成する

この権限は、アクセサ共有の作成およびアカウント間のデータ共有を目的としています。

共有所有者として、JSON ファイルを作成し、それを ibmcloud iam authorization-policy-create コマンドで使用して、共有所有者アカウント (ソース) の File Storage for VPC サービスのサービス間の許可を作成し、アクセサー・アカウント (ターゲット) 内の共有にアクセスします。

  1. 以下の内容を含むJSONファイルを作成してください。 この例では、ファイルは Documents フォルダー内に policy.json として作成されます。

    {
         "roles": [{"role_id": "crn:v1:bluemix:public:iam::::role:ShareBroker","display_name": "Share Broker",
                  "description": "As a share broker, you can create and delete share bindings"}],
         "resources": [{"attributes": [
             {"name": "accountId","value": "<origin share owner Account ID>","operator": "stringEquals"},
             {"name": "serviceName","value": "is","operator": "stringEquals"},
             {"name": "shareId","value": "<OriginShareId>","operator": "stringEquals"}]}],
         "type": "authorization",
         "description": "ShareBroker role for File Storage for VPC cross-account share access",
         "subjects": [{"attributes": [
             {"name": "serviceName","value": "is"},
             {"name": "resourceType","value": "share"},
             {"name": "accountId","value": "<accessor share Account ID>"}]}]
         }
    
  2. 次に、JSON ファイルを指定して CLI コマンドを実行し、許可ポリシーを作成します。

    ibmcloud iam authorization-policy-create --file ~/Documents/policy.json
    

APIを使用した顧客管理暗号化の認可の作成

ファイルサービスがお客様のKey Management Serviceインスタンスにアクセスできるようにするには、 IAMポリシー管理APIに対して APIリクエストを行い、サービス間認証を作成してください。

  • 以下の例は、File サービス is.share (ソース) が Key Protect サービス kms (ターゲット) と リーダー 役割で対話することを許可する方法を示しています。

    curl -X POST 'https://iam.cloud.ibm.com/v1/policies'\
      -H 'Authorization: Bearer $TOKEN'\
      -H 'Content-Type: application/json'\
      -d '{
         "type": "access",
         "description": "Reader role for the file service to interact with the KeyProtect service.",
         "subjects": [
           {"attributes": [
             {"name": "serviceName","value": "is"},
             {"name": "resourceType","value": "share"}]}],
      "roles":[
         {"role_id": "crn:v1:bluemix:public:iam::::role:Reader"}],
      "resources":[
         {"attributes": [
             {"name": "serviceName","value": "kms"}]}]
      }'
    
  • Hyper Protect Crypto Servicesの許可ポリシーを作成するには、前の例の kmshs-crypto に置き換えます。

APIを使用したクロスアカウント暗号化のための認証の作成

別のアカウントファイルサービスが、ご自身のKey Management Serviceインスタンスにアクセスできるように承認するには、 IAMポリシー管理API にリクエストを送信して、サービス間認証を作成してください。 以下の例は、 アカウントの「 File Storage for VPC 」サービスが、Reader権限で(ターゲットである)あなたのアカウントキー管理サービスにアクセスするための承認を作成する方法を示しています。

curl -X POST "https://iam.cloud.ibm.com/v1/policies" \
     -H "Authorization: <Auth Token>" \
     -H 'Content-Type: application/json' \
     -d '{
      "description":"Reader and Delegator role for KeyProtect service instance",
      "resources": [{"attributes": [
            {"name": "KeyOwnerAccountID","value": "a/a1234567","operator": "stringEquals"},
            {"name": "serviceName","operator":"stringEquals","value":"kms"}]}],
      "roles": [
         {"role_id": "crn:v1:bluemix:public:iam::::role:AuthorizationDelegator"},
         {"role_id": "crn:v1:bluemix:public:iam::::serviceRole:Reader"}],
      "subjects": [
         {"name": "serviceName","value": "is"},
            {"name": "resourceType","value": "share"},
            {"name": "KeyUserAccountID","value": "a/a7654321"}],
      "type":"authorization"
   }'

APIを使用したクロスリージョンレプリケーションの認可の作成

IAM ポリシー管理 API に対して、ソース共有のリージョン・ファイル・サービスがレプリカ共有のリージョン・ファイル・サービスと対話するためのサービス間許可を作成するように要求します。

  • 「エディター」 役割を使用して、 is.share (ターゲット) と対話する権限を is.share (ソース) に付与します。

    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 source share's regional file service to interact with replica share's regional file service.",
      "subjects": [
        {"attributes": [
          {"name": "serviceName","value": "is"},
          {"name": "resourceType","value": "share"}]}],
      "roles":[
          {"role_id": "crn:v1:bluemix:public:iam::::role:Editor"}],
      "resources":[
          {"attributes": [
           {"name": "serviceName","value": "is"},
           {"name": "resourceType","value": "share"}]}]
      }'
    

詳しくは、 IAM Policy Management の API 仕様を参照してください。

APIを使用したクロスアカウントアクセスの認証の作成

この権限は、アクセサ共有の作成およびアカウント間のデータ共有を目的としています。

共有の所有者として、 IAM ポリシー管理 API に API リクエストを行い、アクセス元のアカウントにオリジン共有へのアクセスを許可する認可を作成します。 次の例は、オリジン共有アカウント(ソース)とアクセサーアカウント(ターゲット)の間で、サービス間認証を作成する方法を示している。

curl -X POST "https://iam.cloud.ibm.com/v1/policies" \
     -H "Authorization: <Auth Token>" \
     -H 'Content-Type: application/json' \
     -d '
       {"roles": [
          {"role_id": "crn:v1:bluemix:public:iam::::role:ShareBroker",
           "display_name": "Share Broker",
           "description": "As a share broker, you can create and delete share bindings"}
           ],
        "resources": [
            {"attributes": [
              {"name": "accountId","value": "<origin share owner Account ID>","operator": "stringEquals"},
              {"name": "serviceName","value": "is","operator": "stringEquals"},
              {"name": "shareId","value": "<OriginShareId>","operator": "stringEquals"}
              ]}],
        "type": "authorization",
        "description": "ShareBroker role for File Storage for VPC cross-account share access",
        "subjects": [{"attributes": [
            {"name": "serviceName","value": "is"},
            {"name": "resourceType","value": "share"},
            {"name": "accountId","value": "<accessor share Account ID>"}]}]
        }'

Terraformで顧客管理暗号化の認可を作成する

main.tf ファイルで ibm_iam_authorization_policy リソース引数を使用して、ファイル・サービスと鍵管理サービスの間に許可ポリシーを作成します。

以下の例では、適用時にファイル・サービスと Key Protect の間に許可ポリシーを作成します。

resource "ibm_iam_authorization_policy" "mypolicy4keyprotect" {
  source_service_name  = "is"
  source_resource_type = "share"
  target_service_name  = "kms"
  roles                = ["Reader"]
}

引数および属性について詳しくは、 許可リソースの Terraform 資料を参照してください。

Terraformでクロスアカウント暗号化の認可を作成する

  1. Terraform は、 IBM プロバイダー用の 2 つの異なるアカウントの構成をサポートしています。 別名を持たないプロバイダーは、デフォルト・プロバイダーと見なされます。 以下の例を参照してください。ここでは2つの IBMアカウント指定されており、2つ目はエイリアスを使用しています team_account。 このコンフィギュレーションは後で「ibm.team_account」と呼ばれる。

    terraform {
      required_providers {
        ibm = {
          source = "IBM-Cloud/ibm"
          version = ">= 1.12.0"
        }
      }
    }
    provider "ibm" {
      ibmcloud_api_key = var.ibmcloud_api_key
      region           = var.region
      ibmcloud_timeout = var.ibmcloud_timeout
    }
    provider "ibm" {
      alias = "team_account"
      ibmcloud_api_key = var.ibmcloud_api_key_second_account
      region           = var.region
      ibmcloud_timeout = var.ibmcloud_timeout
    }
    

    引数および属性について詳しくは、 IBM Cloud プロバイダーを参照してください。

  2. あるアカウントのファイル共有サービスと、別のアカウントの鍵管理サービスとの間で IAM認可を作成するには、リソース「ibm_iam_authorization_policy」を使用する。 次の例では、あるアカウントのファイルサービスと、別のアカウントの Key Protect サービスとの間で認証設定を行います。

    resource "ibm_iam_authorization_policy" "policy" {
        source_service_name = "is"
        source_resource_type = "share"
        source_service_account = "<fileshare-account-id>"
        target_service_name = "kms"
        target_resource_instance_id = ibm_kms_key.key.instance_id
        roles               = ["Reader"]
        description         = "Authorization Policy"
    }
    

    このterraformリソースには、プロバイダーのエイリアス(この例では'ibm.team_account)と、暗号化キーが保存されているアカウント'ibmcloud_api_key も含める必要がある。

Terraformでクロスリージョンレプリケーションの認可を作成する

main.tf ファイルで ibm_iam_authorization_policy リソース引数を使用して、異なる地域のファイル・サービス間に許可ポリシーを作成します。

resource "ibm_iam_authorization_policy" "mypolicy" {
  source_service_name  = "is"
  source_resource_type = "share"
  target_service_name  = "is"
  target_resource_type = "share"
  roles                = ["Editor"]
}

引数および属性について詳しくは、 許可リソースの Terraform 資料を参照してください。

Terraformでクロスアカウントアクセスの認可を作成する

この権限は、アクセサ共有の作成およびアカウント間のデータ共有を目的としています。

  1. Terraform は、 IBM プロバイダー用の 2 つの異なるアカウントの構成をサポートしています。 別名を持たないプロバイダーは、デフォルト・プロバイダーと見なされます。 以下の例を参照してください。ここでは2つの IBMアカウント指定されており、2つ目はエイリアスを使用しています team_account。 この構成は、後で ibm.team_account として参照する必要があります。

    terraform {
      required_providers {
        ibm = {
          source = "IBM-Cloud/ibm"
          version = ">= 1.12.0"
        }
      }
    }
    provider "ibm" {
      ibmcloud_api_key = var.ibmcloud_api_key
      region           = var.region
      ibmcloud_timeout = var.ibmcloud_timeout
    }
    provider "ibm" {
      alias = "team_account"
      ibmcloud_api_key = var.ibmcloud_api_key_second_account
      region           = var.region
      ibmcloud_timeout = var.ibmcloud_timeout
    }
    

    引数および属性について詳しくは、 IBM Cloud プロバイダーを参照してください。

  2. あるアカウントのファイル共有サービスから別のアカウントのファイル共有サービスへの IAM 許可を作成するには、リソース ibm_iam_authorization_policy を使用します。 以下の例では、2 つのアカウントのファイル・サービス間で許可を作成します。

    resource "ibm_iam_authorization_policy" "policy" {
        source_service_name = "is"
        source_resource_type = "share"
        source_service_account = "<ShareOwner-Account-id>"
        target_service_name = "is"
        target_resource_type = "share"
        target_service_account = "<Accessor-Account-id>"
        roles               = ["ShareBroker"]
        description         = "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 = "share"
     }
     resource_attributes {
       name  = "shareId"
       operator = "stringEquals"
       value = data.ibm_share_id
     }
     resource_attributes {
       name  = "serviceName"
       operator = "stringEquals"
       value = "is"
     }
     resource_attributes {
       name  = "volumeId"
       operator = "stringExists"
       value = "true"
     }
     roles   = ["ShareBroker"]
     }
    

    この Terraform リソースには、起点共有が存在するアカウント ibmcloud_api_key を持つプロバイダー別名 (この例では ibm.team_account) も含まれている必要があります。

    引数および属性について詳しくは、 ibm_iam_authorization_policyを参照してください。

次のステップ