全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
日志服务

概览

更新时间:2017-06-12 16:09:09

借助 STS 实现跨账号访问日志资源资源

您创建的 project、logstore、config、machinegroup,都是您自己拥有的资源。默认情况下,您对自己的资源拥有完整的操作权限,可以使用本文档中列举的所有 API 对资源进行操作。

如果需要授权其它云账号访问各类资源,需要通过 STS 获取临时 ak/token 调用具体操作。在阅读以下说明之前,请先阅读 STS产品文档

假设用户 A 在日志服务创建了 project 和 logstore 等各类资源,用户 B 希望调用 API 接口进行访问,需要按照如下步骤进行操作。

用户 A 操作

创建角色

用户 A 通过 访问控制服务控制台 或者 API 创建角色信任用户 B 云账号,创建的角色详情如下:

  1. {
  2. "Statement": [
  3. {
  4. "Action": "sts:AssumeRole",
  5. "Effect": "Allow",
  6. "Principal": {
  7. "RAM": [
  8. "acs:ram::<云账号 B 的账号 ID>:root"
  9. ]
  10. }
  11. }
  12. ],
  13. "Version": "1"
  14. }

角色授权

角色创建完成后,用户 A 需要授权角色特定操作权限。

如果仅需要写数据,具体权限描述如下:

  1. ```
  2. {
  3. "Version": "1",
  4. "Statement": [
  5. {
  6. "Action": "log:PostLogStoreLogs",
  7. "Resource": "*",
  8. "Effect": "Allow"
  9. }
  10. ]
  11. }
  12. ```

如果需要通过协同消费库拖取数据,具体权限描述如下:

  1. ```
  2. {
  3. "Version": "1",
  4. "Statement": [
  5. {
  6. "Action": [
  7. "log:GetCursorOrData",
  8. "log:CreateConsumerGroup",
  9. "log:ListConsumerGroup",
  10. "log:ConsumerGroupUpdateCheckPoint",
  11. "log:ConsumerGroupHeartBeat",
  12. "log:GetConsumerGroupCheckPoint"
  13. ]
  14. "Resource": "*",
  15. "Effect": "Allow"
  16. }
  17. ]
  18. }
  19. ```

资源(Resource)设置说明:

  • 以上两类资源都是授权指定用户的所有 project 和 logstore
  • 如果授权指定 project:acs:log::{projectOwnerAliUid}:project/
  • 如果授权指定 logstore:acs:log::{projectOwnerAliUid}:project/{projectName}/logstore/{logstoreName}/

完整的资源说明请参考 日志服务 RAM 资源

用户 B 操作

创建子账号并授权

登录访问控制服务控制台或者使用 API/SDK 创建子账号并且授予 AssumeRole 权限(控制台操作示例)。

调用 STS 接口获取临时 ak/token

STS SDK 使用说明

调用日志服务接口

日志服务 SDk 使用说明

示例代码

样例代码以用户 B 通过 STS 向用户 A 的 project 写入数据为例(基于 JavaSDK)。

代码链接

本文导读目录