すべてのプロダクト
Search
ドキュメントセンター

DataWorks:RAMロールベースの承認モードを使用してデータソースを追加する

最終更新日:Jan 11, 2025

このトピックでは、RAMロールベースの承認モードを使用してデータソースを追加し、クラウド内のデータのセキュリティを向上させる方法について説明します。このトピックでは、オブジェクトストレージサービス(OSS)データソースを使用します。

前提条件

RAMユーザーとしてDataWorksコンソールにログオンし、このトピックで説明されている操作を実行する場合、AliyunDataWorksFullAccess ポリシーと AliyunRAMFullAccess ポリシーがRAMユーザーにアタッチされていることを確認してください。詳細については、「RAMユーザーに権限を付与する」をご参照ください。

説明

Alibaba Cloudアカウントを使用してDataWorksコンソールにログオンし、操作を実行する場合は、前提条件を無視してください。

次の図は、RAMユーザーにポリシーをアタッチする方法を示しています。

image

背景情報

データはデータソースに基づいて同期されます。したがって、データソースは、クラウド内の企業データのセキュリティを確保するために不可欠です。 DataWorksでは、より安全な RAMロールベースの承認モード を使用して、OSS、AnalyticDB for MySQL 2.0、LogHub、Tablestore、Hologresなどのデータソースを追加およびアクセスできます。これにより、クラウド内のデータのセキュリティが向上し、データソースの不適切な使用やAccessKeyペアの漏洩を防ぎます。

AccessKeyペアベースの承認モードまたはRAMロールベースの承認モードを使用して、データソースを追加できます。このトピックでは、RAMロールベースの承認モードを使用します。ビジネス要件に基づいてモードを選択できます。次の説明は、AccessKeyペアベースの承認モードとRAMロールベースの承認モードの動作原理を示しています。

  • Accesskeyペアベースの承認モード

    AccessKeyペアベースの承認モードは、RAMロールベースの承認モードよりも安全性が低くなります。 AccessKeyペアベースの承認モードでは、データソースを追加するときに、Alibaba CloudアカウントまたはRAMユーザーのAccessKeyペアのみを指定する必要があります。

    次の図は、AccessKeyペアベースの承認モードでOSSデータソースを追加するために必要なパラメーターを示しています。 OSSデータソースの追加 ダイアログボックスで、AccessKey IDおよびAccessKey Secretパラメーターを、OSSバケットにアクセスする権限を持つアカウントのAccessKeyペアに設定する必要があります。配置数据源

    OSSデータソースの同期タスクが実行またはスケジュールされると、DataWorksはAccessKeyペアを使用してデータソースにアクセスし、データソースからデータを読み取るか、データソースにデータを書き込みます。

    説明

    Accesskeyペアベースの承認モード では、AccessKeyペアが漏洩した場合、OSSデータが漏洩する可能性があります。

  • RAMロールベースの承認モード

    RAMロールベースの承認モード は、AccessKeyペアベースの承認モードよりも安全です。 RAMロールベースの承認モードでは、AccessKeyペアは必要ありません。これにより、AccessKeyペアの漏洩を防ぎます。

    RAMロールベースの承認モード では、AccessKeyペアを使用せずに、DataWorksサービスアカウントにRAMロールを引き受けてOSSにアクセスする権限を与えることができます。

    さらに、ビジネス要件に基づいて、異なるデータソースに対して異なるロールを作成できます。これにより、権限をきめ細かく管理できます。

プロセス

このセクションでは、RAMロールベースの承認モードを使用して、Alibaba CloudアカウントまたはRAMユーザーとしてデータソースを追加する全体的なプロセスについて説明します。

  1. Alibaba Cloudアカウント、またはAliyunRAMFullAccess ポリシーがアタッチされたRAMユーザーを使用して、RAMコンソールにログオンします。次に、引き受けられるロールとアタッチされるポリシーを作成します。

    • 引き受けられるロール: DataWorksサービスアカウントによって引き受けられるカスタムロール。DataWorksサービスアカウントがロールを引き受けた後、ロールに付与されている権限に基づいて、DataWorksサービスアカウントを使用してOSSにアクセスできます。

    • アタッチされるポリシー: PassRole 権限を含むポリシー。RAMユーザーにポリシーがアタッチされると、RAMユーザーはカスタムロールを引き受けて、データソースを追加したり、データソースの同期タスクを実行したりできます。

  2. Alibaba Cloudアカウント、またはAliyunRAMFullAccess ポリシーがアタッチされたRAMユーザーを使用して、RAMコンソールにログオンします。次に、手順 3 と 5 で使用するRAMユーザーに権限を付与します。

    説明

    [RAMロールベースの承認モード] で、承認されていないRAMユーザーを使用してデータソースを追加すると、データソースのすべての同期タスクが実行に失敗します。

  3. Alibaba Cloudアカウントを使用するか、RAMユーザーとしてDataWorksコンソールにログオンし、データ統合ページに移動して、[RAMロールベースの承認モード] でデータソースを追加します。データソースの同期タスクが実行されると、作成されたRAMロールを引き受けてデータソースにアクセスできます。

    説明

    手順 2 で必要な権限が付与された後でのみ、RAMユーザーはこの手順の操作を実行できます。

  4. Alibaba Cloudアカウントを使用するか、RAMユーザーとしてDataStudioページに移動し、追加したデータソースのデータ同期タスクを作成します。

  5. DataStudioページまたはオペレーションセンターページで、データ同期タスクを実行します。

    説明

    手順 2 で必要な権限が付与された後でのみ、RAMユーザーはこの手順の操作を実行できます。

手順

  1. 引き受けられるロールとアタッチされるポリシーを作成し、ポリシーをロールにアタッチします。

    セキュリティ要件に基づいて、異なるデータソースに対して異なるカスタムロールを作成できます。次のシナリオは、引き受けられるロールを作成する方法の例として使用されます。

    説明

    AliyunRAMFullAccess ポリシーがアタッチされているAlibaba CloudアカウントまたはRAMユーザーのみがこの手順の操作を実行できます。

    企業は 100 個のOSSバケットを使用してすべてのデータを保存し、ビッグデータチームは特定のOSSバケットに保存されているデータを使用する必要があります。事前設定されたロール AliyunDataWorksAccessingOSSRole を使用すると、他の 99 個のOSSバケット内のデータにビッグデータチームがアクセスできる可能性があります。これにより、バケット内のデータ漏洩が発生する可能性があります。

    この場合、Alibaba Cloudアカウントの所有者は、ビッグデータチームのために BigDataOSSRole という名前のカスタムロールを作成し、ビッグデータチームのメンバーのみがそのロールを使用できるようにすることができます。これは、チーム間の権限を分離するのに役立ちます。

    1. カスタムロールを作成します。

      この例では、信頼エンティティが [alibaba Cloudアカウント] で、名前が BigDataOssRole であるカスタムロールが作成されます。カスタムロールの作成方法の詳細については、「信頼できるAlibaba CloudアカウントのRAMロールを作成する」をご参照ください。

    2. カスタムポリシーを作成します。

      この例では、ユーザーが指定されたバケットからデータを読み取り、データに書き込むことを許可するポリシーが作成されます。カスタムポリシーの作成方法の詳細については、「カスタムポリシーを作成する」をご参照ください。次のコードは、ポリシーのドキュメントを示しています。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "oss:GetObject",
                      "oss:ListObjects",
                      "oss:GetObjectMetadata",
                      "oss:GetObjectMeta",
                      "oss:GetBucketAcl",
                      "oss:GetBucketInfo",
                      "oss:PutObject",
                      "oss:DeleteObject",
                      "oss:PutBucket"
                  ],
                  "Resource": [
                      "acs:oss:*:*:bucket_name_1",
                      "acs:oss:*:*:bucket_name_1/*"
                  ]
              }
          ]
      }
    3. BigDataOSSRoleロールにポリシーをアタッチします。

      BigDataOSSRole ロールの信頼ポリシーを変更します。作成したポリシーを BigDataOSSRole ロールにアタッチします。これにより、BigDataOSSRole ロールが割り当てられたユーザーは、指定された 2 つのバケットからデータを読み取り、データに書き込むことができます。

      重要

      ロールを使用するには、この手順の操作を実行する必要があります。

      ロールの信頼ポリシーの変更方法の詳細については、「RAM ロールの信頼ポリシーを編集する」をご参照ください。次のコードは、ポリシーのドキュメントを示しています。

      {
          "Statement": [
              {
                  "Action": "sts:AssumeRole",
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "di.dataworks.aliyuncs.com"
                      ]
                  }
              }
          ],
          "Version": "1"
      }
  2. 特定のユーザーがロールを引き受けられるようにします。

    引き受けるロールを決定したら、PassRole 権限を含むポリシーを特定のユーザーにアタッチする必要があります。これにより、ユーザーはロールを引き受けてデータソースを追加し、データソースの同期タスクを実行できます。ビジネス要件に基づいて、ユーザーとロール間のマッピングを確立することもできます。

    • ポリシーテンプレート 1:次のテンプレートに基づいてポリシーを作成できます。このポリシーにより、承認されたユーザーはDataWorks Data Integrationに関連するすべてのロールを引き受けることができます。ビジネスに必要な場合にのみ、テンプレートを使用してポリシーを作成してください。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "ram:PassRole",
                  "Resource": "*",
                  "Effect": "Allow",
                  "Condition": {
                      "StringEquals": {
                          "acs:Service": "di.dataworks.aliyuncs.com"
                      }
                  }
              }
          ]
      }
    • ポリシーテンプレート 2:PassRole 権限を含むカスタムポリシーを作成することもできます。その後、ビジネス要件に基づいて、ユーザーとロール間のマッピングを確立できます。

      説明

      AliyunRAMFullAccess ポリシーがアタッチされているAlibaba CloudアカウントまたはRAMユーザーのみがこの手順の操作を実行できます。

      この例では、ビッグデータチームのために BigDataOSSRole ロールを作成した後、ビジネス要件に基づいて特定のユーザーがロールを引き受けられるようにするために、次のポリシーを使用する必要があります。BigDataOSSRoleAllowUse という名前のカスタムポリシーを作成し、特定のユーザーにアタッチできます。これにより、ユーザーはBigDataOSSRoleロールを引き受けることができます。

      [bigdataossroleallowuse] という名前のポリシーを作成します。詳細については、「カスタムポリシーを作成する」をご参照ください。次のコードは、ポリシーのドキュメントを示しています。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "ram:PassRole",
                  "Resource": "acs:ram::19122324****:role/BigDataOssRole",
                  "Effect": "Allow",
                  "Condition": {
                      "StringEquals": {
                          "acs:Service": [
                              "oss.aliyuncs.com",
                              "di.dataworks.aliyuncs.com"
                          ]
                      }
                  }
              }
          ]
      }
      説明

      上記のコードのUID 19122324**** を、Alibaba CloudアカウントのUIDに置き換えてください。

      BigDataOssRoleAllowUse ポリシーを作成した後、BigDataOssRole ロールを引き受けたいRAMユーザーにポリシーをアタッチできます。これにより、RAMユーザーはアクセスIDとして BigDataOssRole ロールを引き受けて、データソースを追加し、データソースの同期タスクを実行できます。

  3. データソースを追加します。

    Alibaba Cloudアカウントの所有者から必要な権限が付与されたら、データソースを追加できます。

    1. DataWorksFullAccess ポリシーがアタッチされているAlibaba CloudアカウントまたはRAMユーザーを使用して、OSSデータソースを追加します。

      OSSデータソースの追加ダイアログボックスで、[アクセスモード][RAMロール認証モード] を選択し、ビジネス要件に基づいて他のパラメーターを設定します。次の表にパラメーターを示します。標準モードのワークスペースを使用している場合は、開発環境または本番環境のどちらにデータソースを追加するかを決定できます。

      説明

      この例では、OSSデータソースが追加されます。設定する必要のあるパラメーターは、データソースの種類によって異なります。OSSデータソースの追加方法の詳細については、「OSSデータソースを追加する」をご参照ください。

      image

      パラメーター

      説明

      データソース名

      データソースの名前。名前には、英字、数字、アンダースコア(_)のみを含めることができ、英字で始める必要があります。

      データソースの説明

      データソースの説明。説明は 80 文字以内にする必要があります。

      リージョン

      ドロップダウンリストからリージョンを選択します。

      説明

      エンドポイント

      OSSのエンドポイント。エンドポイントの形式: http://oss.aliyuncs.com。OSSのエンドポイントは、リージョンによって異なります。

      説明

      OSSのエンドポイントの前にバケット名を追加し、バケット名の後にピリオド(.)を追加すると、データソースは接続テストに合格できますが、データ同期は失敗します。たとえば、このパラメーターを http://xxx.oss.aliyuncs.com に設定することはできません。

      バケット

      OSSバケットの名前。バケットは、OSSでオブジェクトを格納するために使用されるコンテナーです。

      1 つ以上のバケットを作成し、各バケットに 1 つ以上のオブジェクトを追加できます。

      データ同期の際、DataWorksはこのパラメーターで指定されたバケット内のオブジェクトのみを検索できます。

      アクセスモード

      データソースにアクセスするために使用されるモード。この例では、[RAMロール認証モード] が使用されます。その後、DataWorksサービスアカウントは、STSトークンを使用して関連するロールを引き受けてデータソースにアクセスできます。これにより、セキュリティが向上します。

      ロール

      引き受けるロール。ドロップダウンリストからRAMロールを選択します。

    2. ネットワーク接続をテストします。

      [接続設定] セクションで、[Data Integration] タブをクリックします。次に、必要なリソースグループを見つけ、目的の列の [ネットワーク接続のテスト] をクリックします。

      同期タスクは、1 種類のリソースグループのみを使用できます。同期タスクが期待どおりに実行されるようにするには、同期タスクが実行されるData Integrationのリソースグループとデータソース間の接続をテストする必要があります。複数のData Integrationリソースグループの接続を一度にテストする場合は、リソースグループを選択し、[ネットワーク接続のバッチテスト] をクリックします。詳細については、「ネットワーク接続ソリューション」をご参照ください。

    3. 接続テストが成功した場合は、[作成完了] をクリックします。

  4. データ同期タスクを作成します。

    データソースを追加した後、[datastudio] ページに移動し、データソースのデータ同期タスクを作成できます。詳細については、「コードレスUIを使用してバッチ同期タスクを設定する」をご参照ください。

  5. データ同期タスクを実行します。

    DataStudioまたはオペレーションセンターページで、作成したデータ同期タスクを実行します。

    説明

    [datastudio] ページでタスクを実行する前に、手順 2 で必要な権限が付与されていることを確認してください。そうでない場合、タスクは実行に失敗します。