创建自定义委托
如果在开发作业时有访问其他服务的需求,例如访问DEW获取AK、SK,访问OBS上传或下载数据等场景,那么在创建Spark端点时您需要配置OBS存储的委托和作业委托,这些委托都是需要用户自行创建并配置权限才可以使用。
本节操作介绍创建自定义委托,完成服务授权,并在作业配置中添加新建的委托信息的操作步骤。
常见自定义委托场景
| 委托应用场景 | 委托名称 | 说明 |
|---|---|---|
| 配置存储委托 | 自定义 | AI DataLake Spark作业上传日志/临时数据至OBS桶。 |
| 配置作业委托 | 自定义 | Spark作业访问LakeFormation元数据。 访问AI DataLake Spark作业上传日志/临时数据至OBS桶。 |
步骤1:在IAM控制台创建云服务委托并授权
- 新建自定义身份策略。
- 登录管理控制台。
- 单击右上方登录的用户名,在下拉列表中选择“统一身份认证”。
- 在左侧导航栏中,单击“身份策略”。
- 在“身份策略”页面,单击“创建自定义身份策略”。
- 配置策略信息。
- 策略名称:输入策略名称,本例:aidatalake-obs-agency。
- 策略配置方式:选择“JSON视图”。
- 策略内容:在策略内容中粘贴自定义策略。 本例权限包含访问和使用OBS的权限,适用于以下场景:AI DataLake Spark作业上传日志/临时数据至OBS桶。
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:bucket:GetBucketPolicy", "obs:bucket:GetLifecycleConfiguration", "obs:bucket:GetBucketLocation", "obs:bucket:ListBucketMultipartUploads", "obs:bucket:GetBucketLogging", "obs:object:GetObjectVersion", "obs:bucket:GetBucketStorage", "obs:bucket:GetBucketVersioning", "obs:object:GetObject", "obs:object:GetObjectVersionAcl", "obs:object:DeleteObject", "obs:object:ListMultipartUploadParts", "obs:bucket:HeadBucket", "obs:bucket:GetBucketAcl", "obs:bucket:GetBucketStoragePolicy", "obs:object:AbortMultipartUpload", "obs:object:DeleteObjectVersion", "obs:object:GetObjectAcl", "obs:bucket:ListBucketVersions", "obs:bucket:ListBucket", "obs:object:PutObject" ], "Resource": [ "OBS:*:*:bucket:bucketName",//请替换bucketName为对应的桶名称 "OBS:*:*:object:*" ] }, { "Effect": "Allow", "Action": [ "obs:bucket:ListAllMyBuckets" ] } ] }示例二:允许AI DataLake访问LakeFormation元数据,访问AI DataLake Spark作业上传日志/临时数据至OBS桶,需要同时配置自定义身份策略1和自定义身份策略2。
自定义身份策略1:
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:bucket:GetBucketPolicy", "obs:bucket:GetLifecycleConfiguration", "obs:bucket:GetBucketLocation", "obs:bucket:ListBucketMultipartUploads", "obs:bucket:GetBucketLogging", "obs:object:GetObjectVersion", "obs:bucket:GetBucketStorage", "obs:bucket:GetBucketVersioning", "obs:object:GetObject", "obs:object:GetObjectVersionAcl", "obs:object:DeleteObject", "obs:object:ListMultipartUploadParts", "obs:bucket:HeadBucket", "obs:bucket:GetBucketAcl", "obs:bucket:GetBucketStoragePolicy", "obs:object:AbortMultipartUpload", "obs:object:DeleteObjectVersion", "obs:object:GetObjectAcl", "obs:bucket:ListBucketVersions", "obs:bucket:ListBucket", "obs:object:PutObject" ], "Resource": [ "OBS:*:*:bucket:bucketName",//请替换bucketName为对应的桶名称 "OBS:*:*:object:*" ] }, { "Effect": "Allow", "Action": [ "obs:bucket:ListAllMyBuckets" ] } ] }自定义身份策略2:{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:table:drop", "lakeformation:table:create", "lakeformation:policy:create", "lakeformation:database:create", "lakeformation:database:drop", "lakeformation:database:describe", "lakeformation:catalog:alter", "lakeformation:table:alter", "lakeformation:database:alter", "lakeformation:catalog:create", "lakeformation:function:describe", "lakeformation:catalog:describe", "lakeformation:function:create", "lakeformation:table:describe", "lakeformation:function:drop", "lakeformation:transaction:operate" ] } ] } - 按需输入策略描述。
- 单击“确定”。
- 创建信任委托。
- 在左侧导航栏中,单击“委托”。
- 在“委托”页面,单击“创建信任委托”。
- 在“创建信任委托”页面,设置如下参数:
- 委托名称:按需填写,例如“aidatalake_obs_agency_access”。
- 委托主体类型:选择“云服务”。
- 云服务:在下拉列表中选择“AI DataLake”。
- 最大会话持续时长:即选择编程访问获取的临时访问凭证可持续的最大会话时长。例如:12小时。
- (可选)描述:输入描述信息。
- 配置完委托的基本信息后,单击“完成”。
- 在弹出的“创建成功”对话框中,单击“立即授权”。
- 在“授权”页面,选择身份策略。
- 单击“确定”。
您选中的权限由于系统设计的原因,授权后需等待15~30分钟才可生效。
了解更多授权操作说明请参考创建用户组并授权。
步骤2:在作业中设置委托权限
使用Spark端点引擎执行作业时,需要在作业配置中添加新建的委托信息。
作业指定委托后,授予委托的权限要谨慎修改,委托权限变动可能会影响作业的正常运行。
- 登录AI DataLake管理控制台。
- 在页面左上角切换至对应的工作空间。
- 在左侧导航栏选择“引擎端点 > 批处理引擎 Spark”进入端点列表页面。
- 单击页面右上角的“创建”,配置端点信息。
- 配置端点的基础信息。具体操作,请参考创建Spark引擎端点。
- 在存储配置和委托配置区域配置委托信息:
委托名:选择步骤1:在IAM控制台创建云服务委托并授权中新建的委托。
图1 Spark作业指定委托