OSS-HDFS投递任务运行时,将读取Logstore中的数据并投递到OSS Bucket中,您可以授权OSS-HDFS投递任务扮演自定义RAM角色完成上述操作。本文介绍如何对自定义RAM角色进行授权。
前提条件
已创建RAM角色。具体操作,请参见创建可信实体为阿里云服务的RAM角色。
创建RAM角色时,必须选择可信实体类型为阿里云服务。
请检查角色的信任策略如下,
Service
内容至少包含"log.aliyuncs.com"
。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
步骤一:授予RAM角色读取Logstore数据的权限
授予RAM角色读取Logstore数据的权限后,OSS-HDFS投递任务可以扮演该角色读取Logstore中的数据。
使用阿里云账号登录RAM控制台。
创建具备读取Logstore数据权限的策略。
在左侧导航栏中,选择
。单击创建权限策略。
在创建权限策略页面的脚本编辑页签中,将配置框中的原有脚本替换为如下内容,然后单击继续编辑基本信息。
精确授权。
在实际场景中,请根据实际情况替换Project名称和Logstore名称。
{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/Project名称/logstore/Logstore名称", "acs:log:*:*:project/Project名称/logstore/Logstore名称/*" ], "Effect":"Allow" } ] }
模糊匹配授权。
例如Project名称为log-project-dev-a、log-project-dev-b、log-project-dev-c等,Logstore名称为website_a_log、website_b_log、website_c_log等,则您可以使用模糊匹配授权。在实际场景中,请根据实际情况替换Project名称和Logstore名称。
{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*", "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*/*" ], "Effect":"Allow" } ] }
设置名称,然后单击确定。
例如设置策略名称为log-oss-hdfs-export-source-policy。
为RAM角色授权。
在左侧导航栏中,选择 。
单击目标RAM角色对应的新增授权。
选择自定义策略,并选中步骤2中创建的权限策略(例如log-oss-hdfs-export-source-policy),单击确认新增授权。
获取RAM角色标识(ARN)。
您可以在该角色的基本信息中查看RAM角色标识,例如
acs:ram::13****44:role/log-oss-hdfs-export-source-policy
。请记录该信息,如果您在创建OSS-HDFS投递任务时使用的是自定义RAM角色,则需要在读Logstore RAM角色中输入该信息。具体操作,请参见创建OSS-HDFS投递任务。
步骤二:授予RAM角色写OSS Bucket的权限
授予RAM角色写OSS Bucket的权限后,OSS-HDFS投递任务可以扮演该角色将Logstore中的数据写入到目标OSS Bucket中。
使用阿里云账号登录RAM控制台。
创建具备写OSS Bucket权限的策略。
在左侧导航栏中,选择
。单击创建权限策略。
在创建权限策略页面的脚本编辑页签中,将配置框中的原有脚本替换为如下内容,然后单击继续编辑基本信息。
{ "Statement": [ { "Action": [ "oss:PutObject" ], "Resource": "*", "Effect": "Allow" }, { "Effect": "Allow", "Action": "oss:ListObjects", "Resource": [ "acs:oss:*:*:*" ] }, { "Effect": "Allow", "Action": [ "oss:GetBucketInfo", "oss:PostDataLakeStorageFileOperation", "oss:PostDataLakeStorageAdminOperation" ], "Resource": "*" }, { "Effect": "Allow", "Action": "oss:*", "Resource": [ "acs:oss:*:*:*/.dlsdata", "acs:oss:*:*:*/.dlsdata*" ] } ], "Version": "1" }
如果您有更细粒度的OSS权限控制需求,请参见RAM Policy。
设置名称,然后单击确定。
例如设置策略名称为log-oss-hdfs-export-sink-policy。
为RAM角色授权。
在左侧导航栏中,选择 。
单击目标RAM角色对应的新增授权。
选择自定义策略,并选中步骤2中创建的权限策略(例如log-oss-hdfs-export-sink-policy),然后单击确认新增授权。
获取RAM角色标识(ARN)。
您可以在该角色的基本信息中查看RAM角色标识,例如
acs:ram::13****44:role/log-oss-hdfs-export-sink-policy
。请记录该信息,如果您在创建OSS-HDFS投递任务时使用的是自定义RAM角色,则需要在写OSS-HDFS RAM角色中输入该信息。具体操作,请参见创建OSS-HDFS投递任务。