このトピックでは、OSS データソースを例に、RAM ロールベースの権限付与を使用してデータソースを設定する方法について説明します。この方法により、クラウド上のデータのセキュリティが向上します。
前提条件
このトピックの手順を Resource Access Management (RAM) ユーザーとしてログインして実行するには、まずその RAM ユーザーに AliyunDataWorksFullAccess および AliyunRAMFullAccess ポリシーを付与する必要があります。詳細については、「RAM ユーザー権限の管理」をご参照ください。
Alibaba Cloud アカウントを使用している場合は、この前提条件をスキップできます。
次の図は、権限を追加する方法を示しています。

背景情報
データソースはデータ同期タスクの基盤であり、クラウド上の企業のデータセキュリティに影響します。DataWorks では、より安全な [RAM ロールベースの権限付与] モードを使用して、OSS、AnalyticDB for MySQL、LogHub、Tablestore、Hologres などのデータソースを設定およびアクセスできます。このモードは、クラウドデータのセキュリティを向上させ、データソースの誤用や AccessKey の漏洩などの問題を防止するのに役立ちます。
データソースのアクセスモードには、RAM ロールベースの権限付与と AccessKey モードがあります。このトピックでは、RAM ロールベースの権限付与を使用してデータソースを設定する方法について説明します。ビジネスニーズに合わせてモードを選択できます。AccessKey モードと RAM ロールベースの権限付与モードの原則は次のとおりです。
AccessKey モード
セキュリティレベルが低い [AccessKey モード] では、AccessKey ID と AccessKey Secret を使用し、Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey を入力することで設定を完了できます。
たとえば、OSS データソースを設定するには、[データソースの設定] ページで、特定の OSS バケットにアクセスする権限を持つアカウントの AccessKey を入力できます。

同期タスクを実行またはスケジュールすると、タスクはこの AccessKey を使用して OSS にアクセスし、データの読み書きを行います。
説明[AccessKey モード]では、AccessKey が漏洩した場合、関連付けられた OSS データも公開されます。
RAM ロールベースの権限付与
[RAM ロールベースの権限付与] モードは、データソースにアクセスするためのより安全な方法を提供します。AccessKey を必要としないため、AccessKey 漏洩のリスクを効果的に回避できます。
[RAM ロールベースの権限付与] モードでは、DataWorks サービスアカウントに OSS アクセス権限を持つロールを付与するだけで済みます。これにより、AccessKey なしで OSS データソースにアクセスできます。
このモードは、エンタープライズユーザーのニーズにも応えます。異なるデータソースに異なる権限範囲のロールを割り当てることで、より専門的な権限管理が可能になります。
プロセスの概要
ルートアカウントの代わりに RAM ユーザーがプロセス全体を実行できるように、このトピックでは RAM ユーザーが各ステップを実行するための条件について説明します。RAM ロールベースの権限付与を使用するプロセスは次のとおりです。
Alibaba Cloud アカウントまたは AliyunRAMFullAccess ポリシーが付与された RAM ユーザーが RAM コンソールに移動し、引き受けるロールと付与するポリシーを定義します。
引き受けるロール:DataWorks サービスアカウントが引き受けるためのカスタムロールを作成します。DataWorks サービスアカウントがロールを引き受けた後、そのロールに付与された権限の範囲内で OSS データソースにアクセスできます。
付与するポリシー:`PassRole` 権限を含むポリシーを作成します。このポリシーは、ユーザーに特定のロールを使用してデータソースを作成したり、同期タスクを実行したりする権限を付与します。
Alibaba Cloud アカウントまたは AliyunRAMFullAccess ポリシーが付与された RAM ユーザーが RAM コンソールに移動し、ステップ 4 とステップ 5 を実行する RAM ユーザーにロールを使用する権限を付与します。
説明この権限が付与されていない RAM ユーザーが、[RAM ロールベースの権限付与] モードを使用してデータソースを作成した場合、そのデータソースで設定されたすべての同期タスクは失敗します。
データソースの作成者は DataWorks データ統合に移動し、[RAM ロールベースの権限付与] モードでデータソースを作成します。これにより、DataWorks サービスアカウントは、同期タスクの実行時にロールを偽装して OSS データソースにアクセスできます。
説明このステップは、ステップ 3 でデータソース作成者が承認された場合にのみ利用可能です。
同期タスク作成者は Data Studio に移動し、設定されたデータソースに基づいて同期タスクを作成します。
エグゼキュータは Data Studio またはオペレーションセンターでデータ同期タスクを実行します。
説明このステップは、ステップ 3 でタスク実行者が承認された後でのみ実行できます。
操作手順
引き受けるロールの作成
セキュリティ要件に基づいて、データソースごとに異なるカスタムロールを作成できます。このトピックでは、次のシナリオを例に、引き受けるロールの作成方法を示します。
説明このステップは、Alibaba Cloud アカウントまたは AliyunRAMFullAccess 権限を持つ RAM ユーザーのみが実行できます。
ある企業が、すべてのデータを保存する 100 個のバケットを所有しているとします。ビッグデータチームは、これらのバケットのうち 1 つのデータのみを使用する必要があります。プリセットの AliyunDataWorksAccessingOSSRole ロールを使用すると、ビッグデータチームは他の 99 個のバケットにアクセスできる可能性があり、管理上のリスクが生じます。
したがって、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 ロールが付与されたユーザーは、指定された 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` 権限を含むカスタムポリシーを作成し、ユーザーとロールのマッピングを設定できます。
説明このステップは、Alibaba Cloud アカウントまたは AliyunRAMFullAccess 権限を持つ RAM ユーザーのみが実行できます。
シナリオ例:引き受けるロールのシナリオで説明したように、アカウント管理者がビッグデータチームのために BigDataOssRole ロールを定義した後、管理者は関連するユーザーのみがこのロールを使用できるように指定する必要があります。BigDataOssRoleAllowUse という名前のカスタムポリシーを作成し、関連するユーザーに付与できます。
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 に置き換えてください。
管理者は、BigDataOssRole ロールの使用を許可されている RAM ユーザーに BigDataOssRoleAllowUse ポリシーを付与します。BigDataOssRoleAllowUse ポリシーが付与された RAM ユーザーは、BigDataOssRole ロールを使用してデータソースを作成し、同期タスクを実行できます。データソースを作成する際に、データソースのアクセス ID として BigDataOssRole を使用できます。
データソースの作成
アカウント管理者がデータソース作成者に権限を付与した後、作成者はデータソースを作成できます。
Alibaba Cloud アカウントまたは AliyunDataWorksFullAccess ポリシーを持つ RAM ユーザーが OSS データソースを作成および設定します。
構成時に、[アクセスモード] を [RAM ロールベースの権限付与] に設定します。他のパラメーターは、この Topic の説明に従って設定します。標準モードのワークスペースを使用している場合は、必要に応じて [開発] 環境または [本番] 環境を設定できます。
説明このトピックでは OSS データソースを例として使用しています。使用するデータソースによって、実際のインターフェイスは異なる場合があります。OSS データソースの設定の詳細については、「OSS データソースの設定」をご参照ください。

パラメーター
説明
データソース名
データソース名は、英字、数字、アンダースコア (_) で構成する必要があります。数字またはアンダースコア (_) で始めることはできません。
データソースの説明
データソースの簡単な説明。説明は 80 文字を超えることはできません。
エンドポイント
OSS エンドポイント。フォーマットは
http://oss.aliyuncs.comです。OSS サービスのエンドポイントはリージョンによって異なります。異なるリージョンにアクセスする場合は、異なるドメイン名を入力する必要があります。説明エンドポイントの正しいフォーマットは
http://oss.aliyuncs.comです。バケット名をピリオドでoss.aliyuncs.comの前に追加しないでください (例:http://xxx.oss.aliyuncs.com)。このフォーマットでも接続性テストは成功する場合がありますが、同期は失敗します。バケット
OSS バケット情報。バケットはオブジェクトを格納するためのコンテナーです。
1 つ以上のバケットを作成できます。各バケットに 1 つ以上のファイルを追加できます。
データ同期タスクでは、ここに入力したバケット内で対応するファイルを見つけることができます。追加されていないバケット内のファイルは見つけることができません。
アクセスモード
[RAM ロールベースの権限付与] を選択します。このモードでは、セキュリティトークンサービス (STS) の権限付与を利用して、クラウドプロダクトのサービスアカウントがロールを偽装してデータソースにアクセスすることで、より高いセキュリティを提供します。
ロールの選択
RAM ロールを、[ロールの選択] ドロップダウンリストから選択します。
リージョン
[リージョン] ドロップダウンリストからリージョンを選択します。
ネットワーク接続のテスト
「接続設定」セクションで、リソースグループの[接続テスト]をクリックします。
同期タスクでは、1 種類のリソースグループのみを使用できます。リソースグループの接続性をテストして、同期タスクで使用される Data Integration リソースグループがデータソースに接続できることを確認する必要があります。そうしないと、同期タスクは正常に実行されません。複数のリソースグループを同時にテストするには、リソースグループを選択して、[一括接続性テスト] をクリックします。詳細については、「ネットワーク接続性のソリューション」をご参照ください。
接続性テストが成功したら、[完了] をクリックします。
同期タスクの作成
データソースが作成されると、開発者は [DataStudio] ページでこのデータソースに基づいて同期タスクを作成できます。 詳細については、「同期タスクを設定する」をご参照ください。
同期タスクの実行
タスクのエグゼキュータは、Data Studio またはオペレーションセンターページでデータ同期タスクを実行します。
説明[DataStudio] でタスクを実行する場合、タスク エグゼキュータが手順 2: ユーザーにロールを使用する権限を付与するで必要な権限を付与済みであることを確認してください。これにより、タスクの失敗を防ぐことができます。