MaxCompute プロジェクトの Resource Access Management (RAM) ユーザーは、権限付与なしでは Data Lake Formation (DLF) または Object Storage Service (OSS) にアクセスできません。信頼ポリシーとアクセスポリシーを追加することで、RAM ユーザーにカスタム権限を付与できます。この Topic では、MaxCompute プロジェクトの RAM ユーザーにカスタム権限を付与する方法について説明します。
背景情報
MaxCompute、DLF、および OSS を使用するデータレイクハウスシナリオでは、MaxCompute プロジェクトの RAM ユーザーは、権限付与なしでは DLF にアクセスできません。
MaxCompute プロジェクトの RAM ユーザーが DLF のデプロイに使用される Alibaba Cloud アカウントと同じアカウントに属している場合、信頼ポリシーを追加するときに、service パラメーターを
odps.aliyuncs.comに設定します。MaxCompute プロジェクトの RAM ユーザーが DLF のデプロイに使用される Alibaba Cloud アカウントとは異なるアカウントに属している場合、信頼ポリシーを追加するときに、service パラメーターを
<Alibaba Cloud account ID of the MaxCompute project owner>@odps.aliyuncs.comに設定します。[アカウント ID] は、 または [アカウントセンター] で確認できます。
手順
[Resource Access Management (RAM) コンソール] にログインし、信頼できる Alibaba Cloud アカウント の RAM ロールを作成します。
詳細については、「信頼できる Alibaba Cloud アカウントの RAM ロールを作成する」をご参照ください。
RAM コンソールで、新しい RAM ロールの信頼ポリシーを変更します。
詳細については、「RAM ロールの信頼ポリシーを変更する」をご参照ください。信頼ポリシーは次のとおりです。
MaxCompute プロジェクトを作成する Alibaba Cloud アカウントが DLF をデプロイするアカウントと同じである場合:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "odps.aliyuncs.com" ] } } ], "Version": "1" }MaxCompute プロジェクトを作成する Alibaba Cloud アカウントが DLF をデプロイするアカウントと異なる場合:
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "<Alibaba Cloud account ID of the MaxCompute project owner>@odps.aliyuncs.com" ] } } ], "Version": "1" }
RAM コンソールで、新しい RAM ロールのカスタムポリシーを作成します。
詳細については、「カスタムポリシーを作成する」をご参照ください。カスタムポリシーは次のとおりです。
{ "Version": "1", "Statement": [ { "Action": [ "oss:ListBuckets", "oss:GetObject", "oss:ListObjects", "oss:PutObject", "oss:DeleteObject", "oss:AbortMultipartUpload", "oss:ListParts" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "dlf:CreateFunction", "dlf:BatchGetPartitions", "dlf:ListDatabases", "dlf:CreateLock", "dlf:UpdateFunction", "dlf:BatchUpdateTables", "dlf:DeleteTableVersion", "dlf:UpdatePartitionColumnStatistics", "dlf:ListPartitions", "dlf:DeletePartitionColumnStatistics", "dlf:BatchUpdatePartitions", "dlf:GetPartition", "dlf:BatchDeleteTableVersions", "dlf:ListFunctions", "dlf:DeleteTable", "dlf:GetTableVersion", "dlf:AbortLock", "dlf:GetTable", "dlf:BatchDeleteTables", "dlf:RenameTable", "dlf:RefreshLock", "dlf:DeletePartition", "dlf:UnLock", "dlf:GetLock", "dlf:GetDatabase", "dlf:GetFunction", "dlf:BatchCreatePartitions", "dlf:ListPartitionNames", "dlf:RenamePartition", "dlf:CreateTable", "dlf:BatchCreateTables", "dlf:UpdateTableColumnStatistics", "dlf:ListTableNames", "dlf:UpdateDatabase", "dlf:GetTableColumnStatistics", "dlf:ListFunctionNames", "dlf:ListPartitionsByFilter", "dlf:GetPartitionColumnStatistics", "dlf:CreatePartition", "dlf:CreateDatabase", "dlf:DeleteTableColumnStatistics", "dlf:ListTableVersions", "dlf:BatchDeletePartitions", "dlf:ListCatalogs", "dlf:UpdateTable", "dlf:ListTables", "dlf:DeleteDatabase", "dlf:BatchGetTables", "dlf:DeleteFunction" ], "Resource": "*", "Effect": "Allow" } ] }カスタムポリシーを新しい RAM ロールにアタッチします。
詳細については、「RAM ロールに権限を付与する」をご参照ください。