全部产品
云市场

自定义权限

更新时间:2019-03-26 17:08:57

权限指在某种条件下 ,允许 (Allow) 或 拒绝 (Deny) 对某些资源执行某些操作。

权限的载体是授权策略。自定义权限,即在自定义授权策略时定义某些权限。在 RAM 控制台,策略管理页面,单击新建授权策略开始创建自定义授权策略。创建自定义授权策略时,请选择模板为空白模板。

授权策略是 JSON 格式的字符串,需包含以下参数:

  • Action - 表示要授权的操作。物联网络管理平台的操作都以linkwan:开头。定义方式和示例,请参见本文档中“Action 和 Resource 的定义”。

  • Effect - 表示授权类型,取值:Allow、Deny。

  • Resource - 表示要授权操作的资源。物联网络管理平台的资源都以acs:linkwan:*:*:开头。定义方式和示例,请参见本文档中“Action 和 Resource 的定义”。

  • Condition - 表示鉴权条件。详细信息,请参见本文档中“Condition 的定义”。

Action 和 Resource 的定义

Action 是 API 方法的名称。在创建物联网络管理平台的授权策略时,每个 Action 前缀均为linkwan:,多个 Action 以逗号分隔。并且,支持使用星号通配符。

Resource 是 API 方法操作的资源的名称。每个 Resource 前缀均为acs:linkwan:*:*:,多个 Resource 以逗号分隔。并且,支持使用星号通配符。

物联网络管理平台 API 方法名称的定义、对应资源名称的定义请参见物联网络管理平台 API 授权映射表

下面介绍一些典型的策略配置示例。

  • 全部权限:

    1. {
    2. "Statement": [
    3. {
    4. "Action": "linkwan:*",
    5. "Effect": "Allow",
    6. "Resource": "*"
    7. }
    8. ],
    9. "Version": "1"
    10. }
  • 只读权限:

    1. {
    2. "Statement": [
    3. {
    4. "Action": [
    5. "linkwan:Get*",
    6. "linkwan:Count*",
    7. "linkwan:List*",
    8. "linkwan:Describe*",
    9. "linkwan:Check*"
    10. ],
    11. "Effect": "Allow",
    12. "Resource": [
    13. "*"
    14. ]
    15. }
    16. ],
    17. "Version": "1"
    18. }
  • 网关管理权限:

    1. {
    2. "Statement": [
    3. {
    4. "Effect": "Allow",
    5. "Action": [
    6. "linkwan:CreateGateway",
    7. "linkwan:DeleteGateway",
    8. "linkwan:UpdateGateway",
    9. "linkwan:UpdateGatewayEnablingState",
    10. "linkwan:GetGateway",
    11. "linkwan:ListGateways",
    12. "linkwan:CountGateways",
    13. "linkwan:ListGatewaysGisInfo"
    14. ],
    15. "Resource": [
    16. "acs:linkwan:*:*:gateway/*"
    17. ]
    18. },
    19. {
    20. "Effect": "Allow",
    21. "Action": [
    22. "linkwan:ListGatewayTransferPackets",
    23. "linkwan:GetGatewayTransferPacketsDownloadUrl",
    24. "linkwan:ListGatewayTransferFlowStats",
    25. "linkwan:ListGatewayOnlineRecords",
    26. "linkwan:GetGatewayStatusStat",
    27. "linkwan:GetGatewayPacketStat",
    28. "linkwan:ListActiveGateways"
    29. ],
    30. "Resource": [
    31. "acs:linkwan:*:*:gateway/*",
    32. "acs:linkwan:*:*:diagram/*"
    33. ]
    34. },
    35. {
    36. "Effect": "Allow",
    37. "Action": [
    38. "linkwan:GetFreqBandPlanGroup",
    39. "linkwan:ListFreqBandPlanGroups"
    40. ],
    41. "Resource": [
    42. "acs:linkwan:*:*:freq-band-plan/*"
    43. ]
    44. }
    45. ],
    46. "Version": "1"
    47. }

Condition 的定义

RAM 授权策略支持访问 IP 限制、是否通过 HTTPS 访问、是否通过 MFA(多因素认证)访问、访问时间限制等多种鉴权条件。物联网络管理平台 API 支持这些条件。

下面列举一些典型的 Condition 策略配置。

  • 限制单个 IP 地址和 IP 网段。例如,只允许 IP 地址为 10.101.168.111 或 10.101.169.111/24 网段的请求访问。

    1. {
    2. "Statement": [
    3. {
    4. "Action": [
    5. "linkwan:Get*",
    6. "linkwan:Count*",
    7. "linkwan:List*",
    8. "linkwan:Describe*",
    9. "linkwan:Check*"
    10. ],
    11. "Effect": "Allow",
    12. "Resource": [
    13. "*"
    14. ],
    15. "Condition": {
    16. "IpAddress": {
    17. "acs:SourceIp": [
    18. "10.101.168.111",
    19. "10.101.169.111/24"
    20. ]
    21. }
    22. }
    23. }
    24. ],
    25. "Version": "1"
    26. }
  • 限制多个 IP 地址。例如,只允许 IP 地址为 10.101.168.111 和 10.101.169.111 的请求访问。

    1. {
    2. "Statement": [
    3. {
    4. "Action": [
    5. "linkwan:Get*",
    6. "linkwan:Count*",
    7. "linkwan:List*",
    8. "linkwan:Describe*",
    9. "linkwan:Check*"
    10. ],
    11. "Effect": "Allow",
    12. "Resource": [
    13. "*"
    14. ],
    15. "Condition": {
    16. "IpAddress": {
    17. "acs:SourceIp": [
    18. "10.101.168.111",
    19. "10.101.169.111"
    20. ]
    21. }
    22. }
    23. }
    24. ],
    25. "Version": "1"
    26. }
  • 限制必须通过 HTTPS 请求访问。

    1. {
    2. "Statement": [
    3. {
    4. "Action": [
    5. "linkwan:Get*",
    6. "linkwan:Count*",
    7. "linkwan:List*",
    8. "linkwan:Describe*",
    9. "linkwan:Check*"
    10. ],
    11. "Effect": "Allow",
    12. "Resource": [
    13. "*"
    14. ],
    15. "Condition": {
    16. "Bool": {
    17. "acs:SecureTransport": "true"
    18. }
    19. }
    20. }
    21. ],
    22. "Version": "1"
    23. }
  • 限制必须通过 MFA 请求访问。

    1. {
    2. "Statement": [
    3. {
    4. "Action": [
    5. "linkwan:Get*",
    6. "linkwan:Count*",
    7. "linkwan:List*",
    8. "linkwan:Describe*",
    9. "linkwan:Check*"
    10. ],
    11. "Effect": "Allow",
    12. "Resource": [
    13. "*"
    14. ],
    15. "Condition": {
    16. "Bool": {
    17. "acs:MFAPresent ": "true"
    18. }
    19. }
    20. }
    21. ],
    22. "Version": "1"
    23. }
  • 用户可以在北京时间 2019 年 1 月 20 号凌晨之前访问,之后则不能访问。

    1. {
    2. "Statement": [
    3. {
    4. "Action": [
    5. "linkwan:Get*",
    6. "linkwan:Count*",
    7. "linkwan:List*",
    8. "linkwan:Describe*",
    9. "linkwan:Check*"
    10. ],
    11. "Effect": "Allow",
    12. "Resource": [
    13. "*"
    14. ],
    15. "Condition": {
    16. "DateLessThan": {
    17. "acs:CurrentTime": "2019-01-20T00:00:00+08:00"
    18. }
    19. }
    20. }
    21. ],
    22. "Version": "1"
    23. }

典型使用场景

综上,我们可以利用 Action、Resource、Condition 来灵活配置授权策略,以下列举两个具体场景。

  • 场景 1

允许用户在 2019 年 1 月 20 日之前从 10.101.169.111/24 网段通过 HTTPS 对物联网络管理平台进行只读操作。

策略配置如下:

  1. ```json
  2. {
  3. "Statement": [
  4. {
  5. "Action": [
  6. "linkwan:Get*",
  7. "linkwan:Count*",
  8. "linkwan:List*",
  9. "linkwan:Describe*",
  10. "linkwan:Check*"
  11. ],
  12. "Effect": "Allow",
  13. "Resource": [
  14. "*"
  15. ],
  16. "Condition": {
  17. "DateLessThan": {
  18. "acs:CurrentTime": "2019-01-20T00:00:00+08:00"
  19. },
  20. "IpAddress": {
  21. "acs:SourceIp": [
  22. "10.101.169.111/24"
  23. ]
  24. },
  25. "Bool": {
  26. "acs:SecureTransport": "true"
  27. }
  28. }
  29. }
  30. ],
  31. "Version": "1"
  32. }
  33. ```
  • 场景 2

禁止用户从 IP 地址 10.101.168.111 对物联网络管理平台进行读操作。

策略配置如下:

  1. ```json
  2. {
  3. "Statement": [
  4. {
  5. "Action": [
  6. "linkwan:Get*",
  7. "linkwan:Count*",
  8. "linkwan:List*",
  9. "linkwan:Describe*",
  10. "linkwan:Check*"
  11. ],
  12. "Effect": "Deny",
  13. "Resource": [
  14. "*"
  15. ],
  16. "Condition": {
  17. "IpAddress": {
  18. "acs:SourceIp": [
  19. "10.101.168.111"
  20. ]
  21. }
  22. }
  23. }
  24. ],
  25. "Version": "1"
  26. }
  27. ```

授权策略创建成功后,在访问控制 RAM 控制台,用户管理页面,将此权限授予子账号用户。获得授权的子账号用户就可以进行权限中定义的操作。创建子账号和授权操作帮助,请参见子账号访问