08. Oss Access文档说明 - aliyun/MaxCompute-Spark GitHub Wiki
Oss Endpoint 配置
本机调试时使用对应Region的外网Endpoint,提交集群需替换为VPC内网Endpoint
网络白名单配置
- 默认情况下无需设置可以直接访问;
- 如发现无法访问,设置 spark.hadoop.odps.cupid.trusted.services.access.list=[yourbucketname].oss-xxxxxx-internal.aliyuncs.com(yarn-cluster模式使用,该配置项必须放在配置文件或是命令行提交参数里)
Oss Id/Key访问方式
spark.hadoop.fs.oss.accessKeyId = xxxxxx
spark.hadoop.fs.oss.accessKeySecret = xxxxxx
spark.hadoop.fs.oss.endpoint = oss-xxxxxx-internal.aliyuncs.com
OssStsToken 授权访问方式
一般来说,Spark提供直接通过OSS AccessId以及AccessKey的方式直接访问OSS资源,但是此方式需要明文将AccessId以及AccessKey写在用户代码或者用户配置中,不是一种安全的访问方式,本文档提供一种更加安全的方式访问OSS资源
授权MaxCompute以StsToken的方式访问OSS
点击下方的一键授权链接,可以把当前云账号的OSS资源通过StsToken的方式授权给MaxCompute的Project直接访问,前提是,该MaxCompute的ProjectOwner也是此云账号
获取roleArn
通过上述的授权后,只需要在Spark配置里加上下面的配置就可以访问OSS资源
# 此配置表明Spark是通过StsToken去访问OSS资源
spark.hadoop.fs.oss.credentials.provider=org.apache.hadoop.fs.aliyun.oss.AliyunStsTokenCredentialsProvider
# 此配置是上述一键授权后产生的一个roleArn_ID,授权后可以去访问控制->角色管理获取AliyunODPSDefaultRole Arn信息
spark.hadoop.fs.oss.ststoken.roleArn=acs:ram::xxxxxxxxxxxxxxx:role/aliyunodpsdefaultrole
# 此配置是OSS资源对应的VPC访问endpoint 不同的region可能会不同
# 请访问 https://oss.console.aliyun.com/index 确认对应的 endpoint
spark.hadoop.fs.oss.endpoint=oss-cn-hangzhou-internal.aliyuncs.com
下面讲一下如何获取roleArn
- 登录 https://ram.console.aliyun.com/
- 点击角色管理
- 如果已经执行过一键授权,则会有一个AliyunODPSDefaultRole的记录存在
- 点击管理,页面会跳转到详情页,可以看到一个这样格式的ID
acs:ram::xxxxxxxxxxxxxxx:role/aliyunodpsdefaultrole