开发者社区> 问答> 正文

如何跨帐号授权

本文档介绍不同帐号之间如何实现表格存储和 MaxCompute 之间的无缝连接。如需了解同帐号下的表格存储与 Maxcompute 对接操作,请参考 同帐号下使用 MaxCompute 访问表格存储

准备工作


跨云帐号需要两个主帐号,帐号 A 将访问权限授予帐号 B,则运行 MaxCompute 时,帐号 B 可以访问帐号 A 下的表数据。基本信息如下:


[backcolor=transparent]说明:以下信息仅为示例,在操作时请替换为实际使用的信息。
项目表格存储MaxCompute
主帐号名帐号 A帐号 B
UserId1234556789

使用 MaxCompute 跨云帐号访问表格存储前,您需要完成以下准备工作:

  1. 帐号 B 开通 MaxCompute 服务,并创建 MaxCompute 项目

  2. 帐号 A 和 B 分别 创建 AccessKey

  3. 使用帐号 A 登录 RAM 控制台,并在[backcolor=transparent]角色管理页面,创建用户角色。
    在本示例中,假设创建的角色名称为 [backcolor=transparent]AliyunODPSRoleForOtherUser。

  4. 进入该角色,在[backcolor=transparent]角色详情页面,设置策略内容。

    策略内容如下:{
  5. "Statement": [
  6. {
  7.    "Action": "sts:AssumeRole",
  8.    "Effect": "Allow",
  9.    "Principal": {
  10.      "Service": [
  11.        "56789@odps.aliyuncs.com"
  12.      ]
  13.    }
  14. }
  15. ],
  16. "Version": "1"
  17. }


角色创建完后,您可以在[backcolor=transparent]角色详情页面查看该角色的 roleArn: acs:ram::12345:role/aliyunodpsroleforotheruser。

返回 RAM 控制台首页,进入[backcolor=transparent]策略管理页面,新建授权策略。
在本示例中,假设授权策略名称为 [backcolor=transparent]AliyunODPSRolePolicyForOtherUser。

策略内容如下: {
   "Version": "1",
   "Statement": [
     {
       "Action": [
         "ots:ListTable",
         "ots:DescribeTable",
         "ots:GetRow",
         "ots:PutRow",
         "ots:UpdateRow",
         "ots:DeleteRow",
         "ots:GetRange",
         "ots:BatchGetRow",
         "ots:BatchWriteRow",
         "ots:ComputeSplitPointsBySize"
       ],
       "Resource": "*",
       "Effect": "Allow"
     }
   ]
}
--您也可以自定义其他权限


在[backcolor=transparent]角色管理页面,将 AliyunODPSRolePolicyForOtherUser 权限授权给 AliyunODPSRoleForOtherUser 角色。

在表格存储控制台 创建实例创建数据表
在本示例中,创建的表格存储实例和数据表信息如下:
  • 实例名称:cap1
  • 数据表名称:vehicle_track
  • 主键信息:vid (integer),gt (integer)
  • 访问域名:http://cap1.cn-hangzhou.ots-internal.aliyuncs.com

    [backcolor=transparent]说明:使用 MaxCompute 访问表格存储时,建议使用表格存储的私网地址。
  • 设置[backcolor=transparent]实例网络类型为[backcolor=transparent]允许任意网络访问。


使用 MaxCompute 访问表格存储


跨帐号访问的操作与同帐号下的访问一样,只是在创建外部表时使用 roleArn。
帐号 B 通过 MaxCompute 创建外部表,指定 准备工作中创建出来的 roleArn 来访问表格存储。
具体操作步骤请参考 同帐号授权访问。其中,在步骤 2 创建外部表时,使用如下代码: CREATE EXTERNAL TABLE ads_log_ots_pt_external
(
vid bigint,
gt bigint,
longitude double,
latitude double,
distance double ,
speed double,
oil_consumption double
)
STORED BY 'com.aliyun.odps.TableStoreStorageHandler'
WITH SERDEPROPERTIES (
'tablestore.columns.mapping'=':vid, :gt, longitude, latitude, distance, speed, oil_consumption',
'tablestore.table.name'='vehicle_track'
'odps.properties.rolearn'='acs:ram::12345:role/aliyunodpsroleforotheruser'
)
LOCATION 'tablestore://cap1.cn-hangzhou.ots-internal.aliyuncs.com'
USING 'odps-udf-example.jar'

展开
收起
云栖大讲堂 2017-10-25 10:59:55 2052 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
自主管理身份:分布式数字身份和可验证凭证 立即下载
从身份开始的零信任基础 立即下载
安全机制与User账户身份验证实战 立即下载