DataWorksでは、RAMユーザーが特定のRAMロールを引き受けて、そのRAMロールを使用してDataWorksにログオンし、開発操作を実行できます。このトピックでは、ロールベースのシングルサインオン(SSO)を使用してDataWorksコンソールにログオンし、DataWorksを使用する方法について説明します。
背景情報
DataWorksコンソールにログオンするには、次のいずれかの方法を使用できます。
Alibaba CloudアカウントまたはRAMユーザーを使用する
Alibaba CloudアカウントまたはRAMユーザーとパスワードを使用して、DataWorksコンソールにログオンし、DataWorksを使用できます。この場合、Alibaba CloudアカウントまたはRAMユーザーはDataWorksワークスペースのメンバーになり、DataWorksの機能を使用するための権限が付与されます。
ロールベースのSSOを使用する
企業のセキュリティに対する規制要件が厳しくなるにつれて、ロールベースのSSOを使用してDataWorksコンソールにログオンし、DataWorksを使用することを好む企業もあります。この場合、RAMロールはDataWorksワークスペースのメンバーになります。 RAMロールを引き受けるユーザーは、DataWorksコンソールへのログオンに使用するAlibaba CloudアカウントまたはRAMユーザーと同じ権限を持ちます。ロールの詳細については、「RAMロールの概要」および「概要」をご参照ください。
注意事項
ロールベースのSSOを使用してアクセスできるのは、[maxcompute] または [hologres] コンピューティングエンジンに関連付けられているDataWorksワークスペースのみです。
RAMユーザーまたはRAMロールを使用してユーザーに必要な権限を付与するには、AliyunRAMFullAccess ポリシーをRAMユーザーまたはRAMロールにアタッチする必要があります。詳細については、「RAMユーザーに権限を付与する」をご参照ください。
手順 1:RAMロールを作成する
[RAMコンソール] にログオンします。
Alibaba Cloudアカウントとパスワードを使用してRAMコンソールにログオンします。
左側のナビゲーションペインで、 を選択します。
RAMロールを作成します。
[ロール] ページで、[ロールの作成] をクリックし、画面の指示に従ってRAMロールを作成します。
RAMユーザーがAlibaba Cloud管理コンソールでIDを切り替えることによってRAMロールを引き受けるようにするには、[信頼エンティティの選択] で [alibaba Cloudアカウント] を選択します。詳細については、「信頼できるAlibaba CloudアカウントのRAMロールを作成する」をご参照ください。
オンプレミスのIDプロバイダー(IdP)がRAMロールを引き受けるようにするには、[信頼エンティティの選択] で [idp] を選択します。詳細については、「信頼できるIdPのRAMロールを作成する」をご参照ください。
手順 2:RAMロールの信頼ポリシーを定義する
[ロール] ページで、RAMロールの名前をクリックします。表示されるページで、[信頼ポリシー] タブをクリックし、RAMロールの信頼ポリシーを定義します。信頼ポリシードキュメントには2つの部分があります。最初の部分では、RAMロールをRAMユーザーまたはオンプレミスのIdPが引き受けることができることを定義します。2番目の部分では、RAMロールをDataWorksサービスが引き受けることができることを定義します。次のセクションでは、さまざまなシナリオにおけるRAMロールの信頼ポリシーについて説明します。ビジネス要件に基づいて信頼ポリシーを選択できます。
以下のポリシードキュメントのUIDは、Alibaba CloudアカウントのUIDに置き換え、IDPは選択したオンプレミスIdPの名前に置き換える必要があります。
シナリオ 1:RAMロールをRAMユーザーが引き受ける
RAMユーザーがRAMロールを引き受けてDataWorksを使用するようにするには、RAMロールに次のポリシードキュメントを設定します。
以下のポリシーでは、指定されたRAMユーザーとDataWorksサービスが、Security Token Service(STS)トークンを取得してRAMロールを引き受けることが許可されています。 AssumeRole操作の詳細については、「AssumeRole」をご参照ください。
{
"Statement": [
{
// RAM ユーザーがロールを引き受けることを許可します。
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"RAM": [
"acs:ram::UID:root"
]
}
},
{
// DataWorks サービスがロールを引き受けることを許可します。
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"dataworks.aliyuncs.com"
]
}
}
],
"Version": "1"
}
シナリオ 2:RAMロールをオンプレミスのIdPが引き受ける
オンプレミスのIdPがRAMロールを引き受けてDataWorksを使用するようにするには、RAMロールに次のポリシードキュメントを設定します。
{
"Statement": [
{
// オンプレミスの IdP がロールを引き受けることを許可します。
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"saml:recipient": "https://signin.aliyun.com/saml-role/sso"
}
},
"Effect": "Allow",
"Principal": {
"Federated": [
"acs:ram::UID:saml-provider/IDP"
]
}
},
{
// DataWorks サービスがロールを引き受けることを許可します。
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"dataworks.aliyuncs.com"
]
}
}
],
"Version": "1"
}
手順 3:RAMロールを引き受ける必要があるRAMユーザーに AliyunSTSAssumeRoleAccess ポリシーをアタッチする
RAMユーザーがRAMロールを引き受けるようにするには、RAMユーザーに AliyunSTSAssumeRoleAccess ポリシーをアタッチする必要があります。これにより、RAMユーザーはSTSの AssumeRole 操作を呼び出して、RAMロールのSTSトークンを取得できます。詳細については、「RAMユーザーに権限を付与する」をご参照ください。
オンプレミスのIdPがRAMロールを引き受ける場合は、この手順を実行する必要はありません。
手順 4:RAMロールを引き受けるRAMユーザーを使用してDataWorksコンソールにログオンする
この手順の操作を実行すると、RAMロールとしてDataWorksを使用できます。ロールベースのSSOの詳細については、「概要」をご参照ください。
RAMユーザーとして [DataWorksコンソール] にログオンします。
IDを切り替えます。
DataWorksコンソールにログオンした後、右上隅のユーザープロファイルにポインターを移動し、[IDの切り替え] を選択してRAMロールに切り替えます。
追加情報
ワークスペースを作成した後、以下の操作を実行できます。ワークスペースの作成方法については、「ワークスペースを作成する」をご参照ください。
データ開発のメンバーとして、RAMロールをDataWorksワークスペースに追加します。
DataWorksワークスペース管理者は、データ開発のメンバーとしてRAMロールをDataWorksワークスペースに追加できます。詳細については、「RAMユーザーをワークスペースにメンバーとして追加し、メンバーにロールを割り当てる」をご参照ください。
本番環境でMaxComputeタスクをスケジュールするためのIDとしてRAMロールを指定します。
MaxComputeデータソースを追加する 際に、本番環境でMaxComputeタスクをスケジュールするためのアクセスIDとしてRAMロールを指定できます。RAMロールをスケジューリングアクセスIDとして指定する場合は、他のサービスでRAMロールを使用せず、すべてのMaxComputeタスクがスケジューリング専用のResource Groupを使用して実行されるようにすることをお勧めします。