全部产品
阿里云办公

访问鉴权规则

更新时间:2018-08-15 16:55:04

您通过云账号创建的OpenSearch应用,都是该账号自己拥有的资源。默认情况下,账号对自己的资源拥有完整的操作权限。

使用阿里云的RAM(Resource Access Management)服务,可以将您云账号下OpenSearch资源的访问及管理权限授予RAM中子用户。

注意:

  • RAM 子账号功能只支持V3 及以上API(SDK)版本,V2 版API(SDK)不支持 RAM子账号功能。

  • 第三方数据源产品要严格遵守 RAM 权限体系,需要在第三方产品赋予子帐号对应权限。ODPS 数据源不支持 RAM 鉴权,用户需自行与 ODPS 团队沟通完成子账户授权。

  • 使用RAM子账号在控制台中配置 RDS 数据源,必须要再对该RAM子账号进行数据源相关权限授权,否者会报错提示连接RDS服务失败,请稍后再试,参考下面的RDS访问授权

  • :Search开头的 ACTION 暂不支持 IP条件鉴权,在配置后会有问题,需注意(主要是:SearchApp:SearchSuggest)。

生效时间

对子用户设置或更新权限配置后,延迟5分钟后生效。

最小常见组合权限

使用RAM子账号登录访问开放搜索控制台,最小常见组合权限包括应用列表权限应用详情权限监控与报警权限RDS访问授权等,仅供参考。

应用列表权限

子账号登录后,需要查看控制台应用列表权限。

  1. {
  2. "Statement": [
  3. {
  4. "Action": [
  5. "opensearch:ListApp"
  6. ],
  7. "Effect": "Allow",
  8. "Resource": [
  9. "acs:opensearch:*:*:apps/*"
  10. ]
  11. }
  12. ],
  13. "Version": "1"
  14. }

应用详情权限

监控与报警功能是集成在应用详情界面中,因此需要查看应用详情权限,以下示例是查看应用名为app_schema_demo的应用详情。

  1. {
  2. "Statement": [
  3. {
  4. "Action": [
  5. "opensearch:DescribeApp"
  6. ],
  7. "Effect": "Allow",
  8. "Resource": [
  9. "acs:opensearch:*:*:apps/app_schema_demo"
  10. ]
  11. }
  12. ],
  13. "Version": "1"
  14. }

监控与报警权限

监控与报警功能是基于阿里云监控系统,可以通过在RAM策略模板中搜索AliyunCloudMonitorReadOnlyAccess来查看云监控只读策略。

  1. {
  2. "Version": "1",
  3. "Statement": [
  4. {
  5. "Action": [
  6. "cms:Get*",
  7. "cms:List*",
  8. "cms:Query*",
  9. "cms:BatchQuery*"
  10. ],
  11. "Resource": "*",
  12. "Effect": "Allow"
  13. },
  14. {
  15. "Action": [
  16. "opensearch:ListApps"
  17. ],
  18. "Resource": "*",
  19. "Effect": "Allow"
  20. }
  21. ]
  22. }

RDS访问授权

访问RDS有两个接口,tables和fields。由于访问RDS需要添加白名单,因此还需要再为RAM子账号设置白名单权限(如果没有该权限,连接RDS时会报错提示设置RDS的IP白名单失败)。

RDS 的授权直接在 RAM控制台 配置,可以在概览页配置自定义授权策略或者角色,然后在用户管理页面对子账号进行授权(RDS授权参考文档)。

OpenSearch 使用 RDS 授权最小集合:

  • Resource 中的变量含义(例如: $regionid,$accountid,$dbinstanceid 等)。
  • Resource 中的内容也可以使用通配符 * 来表示。
  1. {
  2. "Version": "1",
  3. "Statement": [
  4. {
  5. "Action": "rds:DescribeDBInstanceAttribute",
  6. "Resource": "acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid",
  7. "Effect": "Allow"
  8. },
  9. {
  10. "Action": "rds:ModifySecurityIps",
  11. "Resource": "acs:rds:$regionid:$accountid:dbinstance/$dbinstanceid",
  12. "Effect": "Allow"
  13. }
  14. ]
  15. }

授权参考

在确定要为子用户赋予某些需要操作的应用后,子用户正常登录控制台通常需要依赖多种 action 权限组合,可以考虑赋予子用户 Describe*List* 权限,当然也可以根据您的实际场景需求为子用户赋予特定的权限组合。

参考(1)

给accountId为1234的主账号下的某个子账号赋予所有区域、所有应用的所有操作权限,该策略在主账号控制台中创建后,需再通过主账号在 RAM 控制台中对子账号授权,或通过 RAM SDK对子账号授权。

1、创建一个策略。

  1. {
  2. "Statement": [
  3. {
  4. "Action": [
  5. "opensearch:*"
  6. ],
  7. "Effect": "Allow",
  8. "Resource": [
  9. "acs:opensearch:*:1234:apps/*"
  10. ]
  11. }
  12. ],
  13. "Version": "1"
  14. }

2、把当前策略授权给您指定的子账号。

参考(2)

给accountId为1234的主账号下的某个子账号赋予华东1区域(cn-hangzhou)、所有应用的所有操作权限,该策略在主账号控制台中创建后,需再通过主账号在 RAM 控制台中对子账号授权,或通过 RAM SDK对子账号授权。

1、创建一个策略。

  1. {
  2. "Statement": [
  3. {
  4. "Action": [
  5. "opensearch:*"
  6. ],
  7. "Effect": "Allow",
  8. "Resource": [
  9. "acs:opensearch:cn-hangzhou:1234:apps/*"
  10. ]
  11. }
  12. ],
  13. "Version": "1"
  14. }

2、把当前策略授权给您指定的子账号。

注意:

  • resource格式中,如果是通过指定*通配符匹配,将包含所有资源类型。

  • 如果在resource格式中,是通过指定应用名匹配, 即使在该策略的Action中指定opensearch:*,也只会包含资源类别为应用名的所有Action,不包含 opensearch:ListAppopensearch:CreateApp

  • 每一行Action都必须对应所在行的resource格式,例如 opensearch:ListAppopensearch:CreateApp作用范围是所有应用,必须用 *表示。注意这2个Action对应resource格式和其它Action对应 resource格式有区别。

  • 如果您的授权策略中只包含指定应用名资源格式,并且您也依赖 opensearch:ListAppopensearch:CreateApp权限。您需要再创建1个包含这2个资源格式为*的Action策略,并累加授权给指定RAM子账号。

apps授权列表

Action Action Descripe resource
opensearch:ListApp app列表权限 acs:opensearch:$regionId:$accountId:apps/*
opensearch:CreateApp 创建app权限,不限制app name acs:opensearch:$regionId:$accountId:apps/*
opensearch:DescribeApp app详情权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:DeleteApp 删除app权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:UpdateApp app更新权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:SetCurrent 多版本应用切换当前版本服务app acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:ReindexApp app索引重建权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:PushDoc app推送文档权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:SearchApp app 查询权限,SearchApp Action鉴权暂不支持ip条件鉴权 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:DescribeFirstRank 粗排详情权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:WriteFirstRank 粗排创建,修改,删除权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:ListFirstRank 粗排列表权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:DescribeSecondRank 精排详情权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:WriteSecondRank 精排创建,修改,删除权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:ListSecondRank 精排列表权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:WriteDataSource 数据源创建,修改,删除权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:ListDataSource 数据源列表权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:DescribeDataSource 数据源详情权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:WriteSummary 摘要创建,修改,删除权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:ListSummary 摘要列表权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:DescribeSuggest 下拉提示详情权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:WriteSuggest 下拉提示创建,修改,删除权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:SearchSuggest 下拉提示搜索权限,SearchSuggest Action鉴权暂不支持ip条件鉴权 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:ReindexSuggest 下拉提示索引重建权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:ListSuggest 下拉提示列表权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:WriteQueryProcessor qp创建,修改,删除权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:ListQueryProcessor qp 列表权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:DescribeQueryProcessor qp 详情页权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:DescribeTask 任务详情权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:WriteTask 任务创建,修改,删除权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:ListTask 任务列表权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:ListLog 日志列表权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:DescribeQuota quota详情权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:WriteQuota quota扩容权限 acs:opensearch:$regionId:$accountId:apps/$appName
opensearch:DescribeIndex 全量导入进度权限 acs:opensearch:$regionId:$accountId:apps/$appName