このトピックでは、OSS データソースを例に、RAM ロール認可モードを使用してデータソースを設定し、クラウドデータのセキュリティを強化する方法について説明します。
前提条件
RAM ユーザーを使用してこのトピックの操作を実行するには、まず RAM ユーザーに AliyunDataWorksFullAccess および AliyunRAMFullAccess ポリシーを付与する必要があります。詳細については、「RAMユーザー権限の管理」をご参照ください。
Alibaba Cloud アカウントを使用している場合、この前提条件はスキップできます。
[権限の追加] パネルで、[リソーススコープ] を [アカウントレベル] に設定し、[ポリシー] セクションで必要な 2 つのシステムポリシーを検索して選択し、[権限の追加] をクリックします。
背景
データソースはデータ同期タスクの基本であり、企業のデータセキュリティを確保するために不可欠です。DataWorks では、より安全な [RAM role authorization mode]を使用して、OSS、AnalyticDB for MySQL 2.0、LogHub、Tablestore、Hologres などの特定のデータソースを設定およびアクセスできます。このモードは、クラウドデータのセキュリティを強化し、データソースの誤用や AccessKey ペアの漏洩などのリスクを防ぐのに役立ちます。
データソースは、RAM ロール認可モードまたは AccessKey ペアベースの認可モードのいずれかを使用して設定できます。このトピックでは、RAM ロール認可モードを使用してデータソースを設定する方法について説明します。ビジネス要件に基づいてモードを選択できます。各モードの仕組みは次のとおりです。
-
[Access Key mode]
セキュリティレベルが低い AccessKey ペアベースの認可モードでは、Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペアを入力するだけで設定が完了します。
たとえば、OSS データソースを設定するには、Configure Data Source ページで必要な権限を持つアカウントの AccessKey ペアを入力します。
[アクセスモード] で [AccessKey ペアベースの認可モード] を選択し、[リージョン]、[エンドポイント]、[バケット] などの接続情報を入力し、[接続設定] をクリックしてリソースグループを選択し、接続性テストを実行します。テストに合格したら、[作成を完了] をクリックします。
同期タスクが実行されると、DataWorks はこの AccessKey ペアを使用して OSS にアクセスし、データを読み書きします。
説明Access Key mode では、Alibaba Cloud アカウントの AccessKey ペアが漏洩すると、関連する OSS データが危険にさらされる可能性があります。
-
[RAM role authorization mode]
[RAM role authorization mode]は、AccessKey ペアを必要としないため、キー漏洩のリスクを排除し、より安全にデータソースにアクセスする方法です。
[RAM role authorization mode]では、DataWorks サービスアカウントが OSS アクセス権限を持つロールを引き受けるように認可することで、AccessKey ペアなしで OSS データソースにアクセスできるようになります。
このモードは、異なる権限範囲を持つロールを異なるデータソースに割り当てることで、企業のニーズにも対応し、よりきめ細かい権限制御を可能にします。
ワークフロー
以下のワークフローは、RAM ロール認可モードを使用するための手順の概要です。また、これらの操作を実行する RAM ユーザーの要件も示しています。
-
Alibaba Cloud アカウントまたは AliyunRAMFullAccess ポリシーを持つ RAM ユーザーが RAM コンソールにログインし、引き受け可能なロールと認可のためのポリシーを定義します。
-
引き受け可能なロール:DataWorks サービスアカウントが引き受けるためのカスタムロールを作成する必要があります。ロールを引き受けた後、DataWorks サービスアカウントはロールの権限範囲内で OSS データソースにアクセスできます。
-
認可ポリシー:ram:PassRole 権限を含むポリシーです。このポリシーにより、ユーザーは特定のロールを使用してデータソースを作成したり、同期タスクを実行したりできます。
-
-
Alibaba Cloud アカウントまたは AliyunRAMFullAccess ポリシーを持つ RAM ユーザーが RAM コンソールにログインし、データソースを作成する (ステップ 3) および同期タスクを実行する (ステップ 5) RAM ユーザーに、ロールを使用する権限を付与します。
説明認可されていない RAM ユーザーが [RAM role authorization mode]を使用してデータソースを作成した場合、このデータソースを使用する同期タスクは失敗します。
-
データソース作成者は、[RAM role authorization mode]を使用して DataWorks Data Integration でデータソースを作成します。これにより、同期タスクの実行時に DataWorks サービスアカウントが特定のロールを引き受けて OSS データソースにアクセスできるようになります。
説明データソース作成者は、ステップ 2 で権限が付与された後にのみ、このステップを実行できます。
-
同期タスク作成者は DataStudio に移動し、設定されたデータソースに基づいて同期タスクを作成します。
-
タスク実行者は、DataStudio またはオペレーションセンターでデータ同期タスクを実行します。
説明タスク実行者は、ステップ 2 で権限が付与された後にのみ、このステップを実行できます。
手順
-
引き受け可能なロールの作成
セキュリティ要件に基づいて、データソースごとに異なるカスタムロールを作成する必要があります。このトピックでは、次のシナリオを例に、引き受け可能なロールを作成する方法を説明します。
説明このステップは、Alibaba Cloud アカウントまたは AliyunRAMFullAccess ポリシーを持つ RAM ユーザーのみが実行できます。
ある企業がすべてのデータを保存する 100 個のバケットを所有しているが、ビッグデータチームは特定の 1 つのバケットのデータのみを使用する必要があるとします。事前定義された AliyunDataWorksAccessingOSSRole ロールを使用した場合、ビッグデータチームが他の 99 個のバケットにアクセスする可能性があり、管理上のリスクとなります。
これを防ぐために、アカウント管理者はビッグデータチーム用に BigDataOssRole という名前のカスタムロールを作成し、その使用を関連するチームメンバーに制限できます。これにより、チーム間の権限制御が実現します。
-
カスタムロールの作成
この例では、BigDataOssRole という名前のカスタムロールを作成し、信頼されたエンティティを Alibaba Cloudアカウント に設定します。詳細な手順については、「信頼できる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 ロールにステップ 1.b で作成したポリシーを付与します。これにより、BigDataOSSRole ロールを引き受けたユーザーは、指定された 1 つのバケットからデータを読み取ることができます。
重要このステップは必ず実行してください。実行しない場合、ロールは使用できません。
ロールの信頼ポリシーを変更する方法の詳細については、「RAMロールの信頼ポリシーの変更」をご参照ください。以下のコードはポリシードキュメントを示しています。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "di.dataworks.aliyuncs.com" ] } } ], "Version": "1" }
-
-
ユーザーへのロール使用権限の付与
引き受け可能なロールを作成した後、関連するユーザーに ram:PassRole 権限を含むポリシーを付与する必要があります。これにより、ユーザーはロールを使用してデータソースを作成し、同期タスクを実行できるようになります。また、ユーザーとロール間のマッピングを設定することもできます。
-
ポリシーテンプレート 1:以下のテンプレートに基づいてポリシーを作成できます。このテンプレートは、認可されたユーザーが DataWorks Data Integration に関連するすべてのロールを使用することを許可します。このポリシーは慎重に付与してください。
{ "Version": "1", "Statement": [ { "Action": "ram:PassRole", "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "acs:Service": "di.dataworks.aliyuncs.com" } } } ] } -
ポリシーテンプレート 2:ram: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 データソースを作成および設定します。
設定中に、Access mode で RAM role authorization mode を選択し、他のパラメーターを設定します。標準モードのワークスペースを使用している場合は、データソースを Development 環境または Production 環境に追加できます。
説明このトピックでは OSS データソースを例としています。パラメーターは他のデータソースタイプによって異なる場合があります。OSS データソースの追加方法の詳細については、「OSSデータソースの設定」をご参照ください。
パラメーター
説明
[Data Source Name]
文字、数字、アンダースコア (_) を含めることができますが、数字またはアンダースコアで始めることはできません。
[Description]
データソースの簡単な説明。説明は 80 文字以内で入力してください。
[Endpoint]
OSS サービスのエンドポイントです。フォーマットは
http://oss.aliyuncs.comです。エンドポイントはリージョンによって異なります。アクセスするリージョンに適したエンドポイントを使用する必要があります。説明エンドポイントの正しい形式は
http://oss.aliyuncs.comです。ただし、http://oss.aliyuncs.comの先頭にドットで区切られたバケット値を付加した形式は不正です。例えば、http://xxx.oss.aliyuncs.comのようなエンドポイントの場合、接続テストは成功する可能性がありますが、同期は失敗します。バケット
OSS バケットの名前。バケットはオブジェクトを格納するコンテナです。
1 つ以上のバケットを作成し、各バケットに 1 つ以上のファイルを追加できます。
DataWorks は、ここで指定したバケット内のオブジェクトのみを検索できます。
[Access mode]
RAM role authorization mode を選択します。このモードは Security Token Service (STS) を使用して、DataWorks サービスアカウントがロールを引き受けてデータソースにアクセスすることを認可するもので、より高いセキュリティを提供します。
[Select Role]
Select Role ドロップダウンリストから RAM ロールを選択します。
[リージョン]
リージョン ドロップダウンリストからリージョンを選択します。
-
ネットワーク接続のテスト
接続設定 セクションで、対象のリソースグループを見つけ、その行の テスト接続 をクリックします。
各同期タスクは単一のリソースグループを使用します。タスクが失敗しないように、目的のリソースグループがデータソースに接続できることを確認するために、接続性をテストする必要があります。複数のリソースグループを同時にテストするには、リソースグループを選択し、Batch test connectivity をクリックします。詳細については、「ネットワーク接続ソリューション」をご参照ください。
-
接続性テストに成功したら、Complete をクリックします。
-
-
同期タスクの作成
データソースが作成された後、開発者は [DataStudio (データ開発)] でこのデータソースを使用するデータ同期タスクを作成できます。詳細については、「同期タスクの設定」をご参照ください。
-
同期タスクの実行
タスク実行者は、DataStudio またはオペレーションセンターでデータ同期タスクを実行します。
説明[DataStudio (データ開発)] でタスクを実行する際は、タスクの失敗を防ぐために、タスク実行者がステップ 2 (ユーザーへのロール使用権限の付与) で付与された権限を持っていることを確認してください。