このトピックでは、RAMロールベースの承認モードを使用してデータソースを追加し、クラウド内のデータのセキュリティを向上させる方法について説明します。このトピックでは、オブジェクトストレージサービス(OSS)データソースを使用します。
前提条件
RAMユーザーとしてDataWorksコンソールにログオンし、このトピックで説明されている操作を実行する場合、AliyunDataWorksFullAccess ポリシーと AliyunRAMFullAccess ポリシーがRAMユーザーにアタッチされていることを確認してください。詳細については、「RAMユーザーに権限を付与する」をご参照ください。
Alibaba Cloudアカウントを使用してDataWorksコンソールにログオンし、操作を実行する場合は、前提条件を無視してください。
次の図は、RAMユーザーにポリシーをアタッチする方法を示しています。

背景情報
データはデータソースに基づいて同期されます。したがって、データソースは、クラウド内の企業データのセキュリティを確保するために不可欠です。 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ユーザーとしてデータソースを追加する全体的なプロセスについて説明します。
Alibaba Cloudアカウント、またはAliyunRAMFullAccess ポリシーがアタッチされたRAMユーザーを使用して、RAMコンソールにログオンします。次に、引き受けられるロールとアタッチされるポリシーを作成します。
引き受けられるロール: DataWorksサービスアカウントによって引き受けられるカスタムロール。DataWorksサービスアカウントがロールを引き受けた後、ロールに付与されている権限に基づいて、DataWorksサービスアカウントを使用してOSSにアクセスできます。
アタッチされるポリシー: PassRole 権限を含むポリシー。RAMユーザーにポリシーがアタッチされると、RAMユーザーはカスタムロールを引き受けて、データソースを追加したり、データソースの同期タスクを実行したりできます。
Alibaba Cloudアカウント、またはAliyunRAMFullAccess ポリシーがアタッチされたRAMユーザーを使用して、RAMコンソールにログオンします。次に、手順 3 と 5 で使用するRAMユーザーに権限を付与します。
説明[RAMロールベースの承認モード] で、承認されていないRAMユーザーを使用してデータソースを追加すると、データソースのすべての同期タスクが実行に失敗します。
Alibaba Cloudアカウントを使用するか、RAMユーザーとしてDataWorksコンソールにログオンし、データ統合ページに移動して、[RAMロールベースの承認モード] でデータソースを追加します。データソースの同期タスクが実行されると、作成されたRAMロールを引き受けてデータソースにアクセスできます。
説明手順 2 で必要な権限が付与された後でのみ、RAMユーザーはこの手順の操作を実行できます。
Alibaba Cloudアカウントを使用するか、RAMユーザーとしてDataStudioページに移動し、追加したデータソースのデータ同期タスクを作成します。
DataStudioページまたはオペレーションセンターページで、データ同期タスクを実行します。
説明手順 2 で必要な権限が付与された後でのみ、RAMユーザーはこの手順の操作を実行できます。
手順
引き受けられるロールとアタッチされるポリシーを作成し、ポリシーをロールにアタッチします。
セキュリティ要件に基づいて、異なるデータソースに対して異なるカスタムロールを作成できます。次のシナリオは、引き受けられるロールを作成する方法の例として使用されます。
説明AliyunRAMFullAccess ポリシーがアタッチされているAlibaba CloudアカウントまたはRAMユーザーのみがこの手順の操作を実行できます。
企業は 100 個のOSSバケットを使用してすべてのデータを保存し、ビッグデータチームは特定のOSSバケットに保存されているデータを使用する必要があります。事前設定されたロール AliyunDataWorksAccessingOSSRole を使用すると、他の 99 個のOSSバケット内のデータにビッグデータチームがアクセスできる可能性があります。これにより、バケット内のデータ漏洩が発生する可能性があります。
この場合、Alibaba Cloudアカウントの所有者は、ビッグデータチームのために BigDataOSSRole という名前のカスタムロールを作成し、ビッグデータチームのメンバーのみがそのロールを使用できるようにすることができます。これは、チーム間の権限を分離するのに役立ちます。
カスタムロールを作成します。
この例では、信頼エンティティが [alibaba Cloudアカウント] で、名前が BigDataOssRole であるカスタムロールが作成されます。カスタムロールの作成方法の詳細については、「信頼できるAlibaba CloudアカウントのRAMロールを作成する」をご参照ください。
カスタムポリシーを作成します。
この例では、ユーザーが指定されたバケットからデータを読み取り、データに書き込むことを許可するポリシーが作成されます。カスタムポリシーの作成方法の詳細については、「カスタムポリシーを作成する」をご参照ください。次のコードは、ポリシーのドキュメントを示しています。
{ "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/*" ] } ] }BigDataOSSRoleロールにポリシーをアタッチします。
BigDataOSSRole ロールの信頼ポリシーを変更します。作成したポリシーを BigDataOSSRole ロールにアタッチします。これにより、BigDataOSSRole ロールが割り当てられたユーザーは、指定された 2 つのバケットからデータを読み取り、データに書き込むことができます。
重要ロールを使用するには、この手順の操作を実行する必要があります。
ロールの信頼ポリシーの変更方法の詳細については、「RAM ロールの信頼ポリシーを編集する」をご参照ください。次のコードは、ポリシーのドキュメントを示しています。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "di.dataworks.aliyuncs.com" ] } } ], "Version": "1" }
特定のユーザーがロールを引き受けられるようにします。
引き受けるロールを決定したら、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 ロールを引き受けて、データソースを追加し、データソースの同期タスクを実行できます。
データソースを追加します。
Alibaba Cloudアカウントの所有者から必要な権限が付与されたら、データソースを追加できます。
DataWorksFullAccess ポリシーがアタッチされているAlibaba CloudアカウントまたはRAMユーザーを使用して、OSSデータソースを追加します。
OSSデータソースの追加ダイアログボックスで、[アクセスモード] に [RAMロール認証モード] を選択し、ビジネス要件に基づいて他のパラメーターを設定します。次の表にパラメーターを示します。標準モードのワークスペースを使用している場合は、開発環境または本番環境のどちらにデータソースを追加するかを決定できます。
説明この例では、OSSデータソースが追加されます。設定する必要のあるパラメーターは、データソースの種類によって異なります。OSSデータソースの追加方法の詳細については、「OSSデータソースを追加する」をご参照ください。

パラメーター
説明
データソース名
データソースの名前。名前には、英字、数字、アンダースコア(_)のみを含めることができ、英字で始める必要があります。
データソースの説明
データソースの説明。説明は 80 文字以内にする必要があります。
リージョン
ドロップダウンリストからリージョンを選択します。
説明エンドポイント
OSSのエンドポイント。エンドポイントの形式: http://oss.aliyuncs.com。OSSのエンドポイントは、リージョンによって異なります。
説明OSSのエンドポイントの前にバケット名を追加し、バケット名の後にピリオド(.)を追加すると、データソースは接続テストに合格できますが、データ同期は失敗します。たとえば、このパラメーターを http://xxx.oss.aliyuncs.com に設定することはできません。
バケット
OSSバケットの名前。バケットは、OSSでオブジェクトを格納するために使用されるコンテナーです。
1 つ以上のバケットを作成し、各バケットに 1 つ以上のオブジェクトを追加できます。
データ同期の際、DataWorksはこのパラメーターで指定されたバケット内のオブジェクトのみを検索できます。
アクセスモード
データソースにアクセスするために使用されるモード。この例では、[RAMロール認証モード] が使用されます。その後、DataWorksサービスアカウントは、STSトークンを使用して関連するロールを引き受けてデータソースにアクセスできます。これにより、セキュリティが向上します。
ロール
引き受けるロール。ドロップダウンリストからRAMロールを選択します。
ネットワーク接続をテストします。
[接続設定] セクションで、[Data Integration] タブをクリックします。次に、必要なリソースグループを見つけ、目的の列の [ネットワーク接続のテスト] をクリックします。
同期タスクは、1 種類のリソースグループのみを使用できます。同期タスクが期待どおりに実行されるようにするには、同期タスクが実行されるData Integrationのリソースグループとデータソース間の接続をテストする必要があります。複数のData Integrationリソースグループの接続を一度にテストする場合は、リソースグループを選択し、[ネットワーク接続のバッチテスト] をクリックします。詳細については、「ネットワーク接続ソリューション」をご参照ください。
接続テストが成功した場合は、[作成完了] をクリックします。
データ同期タスクを作成します。
データソースを追加した後、[datastudio] ページに移動し、データソースのデータ同期タスクを作成できます。詳細については、「コードレスUIを使用してバッチ同期タスクを設定する」をご参照ください。
データ同期タスクを実行します。
DataStudioまたはオペレーションセンターページで、作成したデータ同期タスクを実行します。
説明[datastudio] ページでタスクを実行する前に、手順 2 で必要な権限が付与されていることを確認してください。そうでない場合、タスクは実行に失敗します。