权限指在某种条件下,允许(Allow) 或拒绝(Deny)对某些资源执行某些操作。
权限的载体是授权策略。自定义权限,即在自定义授权策略时定义某些权限。在RAM控制台,策略管理页面,单击新建授权策略开始创建自定义授权策略。创建自定义授权策略时,请选择模板为空白模板。
授权策略是JSON格式的字符串,需包含以下参数。
参数 | 说明 |
---|---|
Action | 表示要授权的操作。物联网络管理平台的操作都以linkwan: 开头。定义方式和示例,请参见本文档中Action和Resource的定义。
|
Effect | 表示授权类型,取值:Allow、Deny。 |
Resource | 表示要授权操作的资源。物联网络管理平台的资源都以acs:linkwan:*:*: 开头。定义方式和示例,请参见本文档中Action和Resource的定义。
|
Condition | 表示鉴权条件。详细信息,请参见本文档中Condition的定义。 |
Action是API方法的名称。在创建物联网络管理平台的授权策略时,每个Action前缀均为linkwan:
,多个Action以逗号分隔。支持使用星号通配符。
Resource是API方法操作的资源的名称。每个Resource前缀均为acs:linkwan:*:*:
,多个Resource以逗号分隔。支持使用星号通配符。
物联网络管理平台API方法名称的定义、对应资源名称的定义请参见物联网络管理平台 API 授权映射表。
下面介绍一些典型的策略配置示例。
- 全部权限
{ "Statement": [ { "Action": "linkwan:*", "Effect": "Allow", "Resource": "*" } ], "Version": "1" }
- 只读权限
{ "Statement": [ { "Action": [ "linkwan:Get*", "linkwan:Count*", "linkwan:List*", "linkwan:Describe*", "linkwan:Check*" ], "Effect": "Allow", "Resource": [ "*" ] } ], "Version": "1" }
- 网关管理权限
{ "Statement": [ { "Effect": "Allow", "Action": [ "linkwan:CreateGateway", "linkwan:DeleteGateway", "linkwan:UpdateGateway", "linkwan:UpdateGatewayEnablingState", "linkwan:GetGateway", "linkwan:ListGateways", "linkwan:CountGateways", "linkwan:ListGatewaysGisInfo" ], "Resource": [ "acs:linkwan:*:*:gateway/*" ] }, { "Effect": "Allow", "Action": [ "linkwan:ListGatewayTransferPackets", "linkwan:GetGatewayTransferPacketsDownloadUrl", "linkwan:ListGatewayTransferFlowStats", "linkwan:ListGatewayOnlineRecords", "linkwan:GetGatewayStatusStat", "linkwan:GetGatewayPacketStat", "linkwan:ListActiveGateways" ], "Resource": [ "acs:linkwan:*:*:gateway/*", "acs:linkwan:*:*:diagram/*" ] }, { "Effect": "Allow", "Action": [ "linkwan:GetFreqBandPlanGroup", "linkwan:ListFreqBandPlanGroups" ], "Resource": [ "acs:linkwan:*:*:freq-band-plan/*" ] } ], "Version": "1" }
Condition的定义
RAM授权策略支持访问IP限制、是否通过HTTPS访问、是否通过MFA(多因素认证)访问、访问时间限制等多种鉴权条件。物联网络管理平台API支持这些条件。
下面列举一些典型的Condition策略配置。
-
限制单个IP地址和IP网段。例如,只允许IP地址为10.101.168.111或10.101.169.111/24网段的请求访问。
{ "Statement": [ { "Action": [ "linkwan:Get*", "linkwan:Count*", "linkwan:List*", "linkwan:Describe*", "linkwan:Check*" ], "Effect": "Allow", "Resource": [ "*" ], "Condition": { "IpAddress": { "acs:SourceIp": [ "10.101.168.111", "10.101.169.111/24" ] } } } ], "Version": "1" }
-
限制多个IP地址。例如,只允许IP地址为10.101.168.111和10.101.169.111的请求访问。
{ "Statement": [ { "Action": [ "linkwan:Get*", "linkwan:Count*", "linkwan:List*", "linkwan:Describe*", "linkwan:Check*" ], "Effect": "Allow", "Resource": [ "*" ], "Condition": { "IpAddress": { "acs:SourceIp": [ "10.101.168.111", "10.101.169.111" ] } } } ], "Version": "1" }
-
限制必须通过HTTPS请求访问。
{ "Statement": [ { "Action": [ "linkwan:Get*", "linkwan:Count*", "linkwan:List*", "linkwan:Describe*", "linkwan:Check*" ], "Effect": "Allow", "Resource": [ "*" ], "Condition": { "Bool": { "acs:SecureTransport": "true" } } } ], "Version": "1" }
-
限制必须通过MFA请求访问。
{ "Statement": [ { "Action": [ "linkwan:Get*", "linkwan:Count*", "linkwan:List*", "linkwan:Describe*", "linkwan:Check*" ], "Effect": "Allow", "Resource": [ "*" ], "Condition": { "Bool": { "acs:MFAPresent ": "true" } } } ], "Version": "1" }
-
用户可以在北京时间2019年1月20号凌晨之前访问,之后则不能访问。
{ "Statement": [ { "Action": [ "linkwan:Get*", "linkwan:Count*", "linkwan:List*", "linkwan:Describe*", "linkwan:Check*" ], "Effect": "Allow", "Resource": [ "*" ], "Condition": { "DateLessThan": { "acs:CurrentTime": "2019-01-20T00:00:00+08:00" } } } ], "Version": "1" }
典型使用场景
综上,我们可以利用Action、Resource、Condition来灵活配置授权策略,以下列举两个具体场景。
- 场景1
允许用户在2019年1月20日之前从10.101.169.111/24网段通过HTTPS对物联网络管理平台进行只读操作。
策略配置如下:```json { "Statement": [ { "Action": [ "linkwan:Get*", "linkwan:Count*", "linkwan:List*", "linkwan:Describe*", "linkwan:Check*" ], "Effect": "Allow", "Resource": [ "*" ], "Condition": { "DateLessThan": { "acs:CurrentTime": "2019-01-20T00:00:00+08:00" }, "IpAddress": { "acs:SourceIp": [ "10.101.169.111/24" ] }, "Bool": { "acs:SecureTransport": "true" } } } ], "Version": "1" } ```
- 场景2
禁止用户从IP地址10.101.168.111对物联网络管理平台进行读操作。
策略配置如下:
```json { "Statement": [ { "Action": [ "linkwan:Get*", "linkwan:Count*", "linkwan:List*", "linkwan:Describe*", "linkwan:Check*" ], "Effect": "Deny", "Resource": [ "*" ], "Condition": { "IpAddress": { "acs:SourceIp": [ "10.101.168.111" ] } } } ], "Version": "1" } ```
授权策略创建成功后,在访问控制RAM控制台,用户管理页面,将此权限授予子账号用户。获得授权的子账号用户就可以进行权限中定义的操作。创建子账号和授权操作帮助,请参见子账号访问。