华为云用户手册

  • 修改SCP 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台。 进入策略管理页,单击“服务控制策略”,进入SCP管理页。 单击自定义SCP操作列的“编辑”。 可根据需要修改“策略名称”和“策略描述”。如图1所示。 图1 修改SCP 按需修改策略内容。可使用语句编辑器进行修改,策略语法请参考SCP语法介绍。 单击右下角“保存”后,系统会自动校验语法,如跳转到策略列表,则SCP编辑成功;如系统提示策略内容有误,则请按照语法规范进行修改。
  • 操作(Action) 操作(Action)即为SCP策略中支持的授权项。 “访问级别”列描述如何对操作进行分类(list、read和write等)。此分类可帮助您了解在SCP策略中相应操作对应的访问级别。 “资源类型”列指每个操作是否支持资源级权限。 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在SCP策略语句的Resource元素中指定所有资源类型(“*”)。 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。 关于AAD定义的资源类型的详细信息请参见资源类型(Resource)。 “条件键”列包括了可以在SCP策略语句的Condition元素中支持指定的键值。 如果该授权项资源类型列存在值,则表示条件键仅对列举的资源类型生效。 如果该授权项资源类型列没有值(-),则表示条件键对整个授权项生效。 如果此列条件键没有值(-),表示此操作不支持指定条件键。 关于AAD定义的条件键的详细信息请参见条件(Condition)。 您可以在SCP策略语句的Action元素中指定以下AAD的相关操作。 表1 AAD支持的授权项 授权项 描述 访问级别 资源类型(*为必须) 条件键 aad:alarmConfig:create 授予创建告警设置的权限。 write alarmConfig * - aad:alarmConfig:put 授予修改告警设置的权限。 write alarmConfig * - aad:alarmConfig:get 授予查询告警设置的权限。 read alarmConfig * - aad:alarmConfig:delete 授予删除告警设置的权限。 write alarmConfig * - aad:certificate:delete 授予删除证书的权限。 write certificate * - aad:certificate:list 授予查询证书列表的权限。 list certificate * - aad:certificate:set 授予修改域名对应证书的权限。 write certificate * - domain * g:EnterpriseProjectId aad:dashboard:delete 授予删除报表日志配置的权限。 write - - aad:dashboard:get 授予获取报表数据和日志配置的权限。 read - - aad:dashboard:set 授予修改报表日志配置的权限。 write - - aad:domain:create 授予添加防护域名的权限。 write domain * g:EnterpriseProjectId aad:domain:delete 授予删除防护域名的权限。 write domain * g:EnterpriseProjectId aad:domain:get 授予查询防护域名详情的权限。 read domain * g:EnterpriseProjectId aad:domain:list 授予查询域名列表的权限。 list domain * g:EnterpriseProjectId aad:domain:put 授予修改域名防护属性的权限。 write domain * g:EnterpriseProjectId aad:forwardingRule:create 授予添加转发规则的权限。 write forwardingRule * g:EnterpriseProjectId aad:forwardingRule:delete 授予删除转发规则的权限。 write forwardingRule * g:EnterpriseProjectId aad:forwardingRule:get 授予查询转发规则的权限。 read forwardingRule * g:EnterpriseProjectId aad:forwardingRule:list 授予导出转发规则的权限。 list forwardingRule * g:EnterpriseProjectId aad:forwardingRule:put 授予修改转发规则中的回源IP的权限。 write forwardingRule * g:EnterpriseProjectId aad:instance:create 授予创建实例的权限。 write instance * g:EnterpriseProjectId aad:instance:get 授予查询实例属性的权限。 read instance * g:EnterpriseProjectId aad:instance:list 授予查询实例列表的权限。 list instance * g:EnterpriseProjectId aad:instance:put 授予修改实例属性的权限。 write instance * g:EnterpriseProjectId aad:policy:create 授予添加防护规则的权限。 write policy * g:EnterpriseProjectId aad:policy:delete 授予删除防护规则的权限。 write policy * g:EnterpriseProjectId aad:policy:get 授予查询防护规则详情的权限。 read policy * g:EnterpriseProjectId aad:policy:list 授予查询防护规则列表的权限。 list policy * g:EnterpriseProjectId aad:policy:put 授予修改防护规则的权限。 write policy * g:EnterpriseProjectId aad:quotas:get 授予查询防护规格的权限。 read - - aad:whiteBlackIpRule:create 授予添加防护黑白名单的权限。 write whiteBlackIpRule * g:EnterpriseProjectId aad:whiteBlackIpRule:delete 授予删除防护黑白名单的权限。 write whiteBlackIpRule * g:EnterpriseProjectId aad:whiteBlackIpRule:list 授予查询防护黑白名单列表的权限。 list whiteBlackIpRule * g:EnterpriseProjectId aad:protectedIp:put 授予修改防护对象标签的权限。 write - - aad:protectedIp:list 授予查询防护对象列表的权限。 list - - aad:package:put 授予修改防护包的权限。 write package * - aad:package:list 授予查询防护包列表的权限。 list package * - aad:block:put 授予解封IP的权限。 write - - aad:block:list 授予查询封堵ip列表的权限。 list - - aad:block:get 授予查询封堵和解封信息的权限。 read - - aad:alarmConfig:create 授予创建告警设置的权限。 write alarmConfig * - aad:alarmConfig:put 授予修改告警设置的权限。 write alarmConfig * - aad:alarmConfig:get 授予查询告警设置的权限。 read alarmConfig * - aad:alarmConfig:delete 授予删除告警设置的权限。 write alarmConfig * - aad:certificate:delete 授予删除证书的权限。 write certificate * - aad:certificate:list 授予查询证书列表的权限。 list certificate * - aad:certificate:set 授予修改域名对应证书的权限。 write certificate * - domain * g:EnterpriseProjectId aad:dashboard:delete 授予删除报表日志配置的权限。 write - - aad:dashboard:get 授予获取报表数据和日志配置的权限。 read - - aad:dashboard:set 授予修改报表日志配置的权限。 write - - aad:domain:create 授予添加防护域名的权限。 write domain * g:EnterpriseProjectId aad:domain:delete 授予删除防护域名的权限。 write domain * g:EnterpriseProjectId aad:domain:get 授予查询防护域名详情的权限。 read domain * g:EnterpriseProjectId aad:domain:list 授予查询域名列表的权限。 list domain * g:EnterpriseProjectId aad:domain:put 授予修改域名防护属性的权限。 write domain * g:EnterpriseProjectId aad:forwardingRule:create 授予添加转发规则的权限。 write forwardingRule * g:EnterpriseProjectId aad:forwardingRule:delete 授予删除转发规则的权限。 write forwardingRule * g:EnterpriseProjectId aad:forwardingRule:get 授予查询转发规则的权限。 read forwardingRule * g:EnterpriseProjectId aad:forwardingRule:list 授予导出转发规则的权限。 list forwardingRule * g:EnterpriseProjectId aad:forwardingRule:put 授予修改转发规则中的回源IP的权限。 write forwardingRule * g:EnterpriseProjectId aad:instance:create 授予创建实例的权限。 write instance * g:EnterpriseProjectId aad:instance:get 授予查询实例属性的权限。 read instance * g:EnterpriseProjectId aad:instance:list 授予查询实例列表的权限。 list instance * g:EnterpriseProjectId aad:instance:put 授予修改实例属性的权限。 write instance * g:EnterpriseProjectId aad:policy:create 授予添加防护规则的权限。 write policy * g:EnterpriseProjectId aad:policy:delete 授予删除防护规则的权限。 write policy * g:EnterpriseProjectId aad:policy:get 授予查询防护规则详情的权限。 read policy * g:EnterpriseProjectId aad:policy:list 授予查询防护规则列表的权限。 list policy * g:EnterpriseProjectId aad:policy:put 授予修改防护规则的权限。 write policy * g:EnterpriseProjectId aad:quotas:get 授予查询防护规格的权限。 read - - aad:whiteBlackIpRule:create 授予添加防护黑白名单的权限。 write whiteBlackIpRule * g:EnterpriseProjectId aad:whiteBlackIpRule:delete 授予删除防护黑白名单的权限。 write whiteBlackIpRule * g:EnterpriseProjectId aad:whiteBlackIpRule:list 授予查询防护黑白名单列表的权限。 list whiteBlackIpRule * g:EnterpriseProjectId aad:protectedIp:put 授予修改防护对象标签的权限。 write - - aad:protectedIp:list 授予查询防护对象列表的权限。 list - - aad:package:put 授予修改防护包的权限。 write package * - aad:package:list 授予查询防护包列表的权限。 list package * - aad:block:put 授予解封IP的权限。 write - - aad:block:list 授予查询封堵ip列表的权限。 list - - aad:block:get 授予查询封堵和解封信息的权限。 read - - AAD的API通常对应着一个或多个授权项。表2展示了API与授权项的关系,以及该API需要依赖的授权项。 表2 API与授权项的关系 API 对应的授权项 依赖的授权项 POST /v1/{project_id}/cad/alart/config aad:alarmConfig:create - POST /v1/cnad/alarm-config aad:alarmConfig:put - DELETE /v1/cnad/alarm-config aad:alarmConfig:delete - GET /v1/{project_id}/cad/alart/list aad:alarmConfig:get - GET /v1/cnad/alarm-config aad:alarmConfig:get - DELETE /v1/aad/certificate/del aad:certificate:delete - GET /v1/{project_id}/cad/domains/certificatelist aad:certificate:list - GET /v1/aad/certificate-details aad:certificate:list - POST /v1/{project_id}/cad/domains/certificate aad:certificate:set - POST /v1/aad/configs/lts/delete aad:dashboard:delete - GET /v1/{project_id}/cad/ddosinfo/events_type aad:dashboard:get - GET /v1/aad/configs/lts_region aad:dashboard:get - GET /v1/aad/configs/lts aad:dashboard:get - GET /v1/{project_id}/waf/event/timeline aad:dashboard:get - GET /v1/{project_id}/waf/event/request/peak aad:dashboard:get - GET /v1/{project_id}/waf/event/attack/type aad:dashboard:get - GET /v1/{project_id}/waf/event/attack/source/num aad:dashboard:get - GET /v1/{project_id}/waf/event/attack/source aad:dashboard:get - GET /v1/{project_id}/cad/instances/flow_pps aad:dashboard:get - GET /v1/{project_id}/cad/instances/flow_bps aad:dashboard:get - GET /v1/{project_id}/cad/instances/events aad:dashboard:get - GET /v1/{project_id}/cad/ddosinfo/peak aad:dashboard:get - POST /v1/aad/configs/lts aad:dashboard:set - POST /v1/{project_id}/aad/domains aad:domain:create - POST /v1/{project_id}/cad/domains/del aad:domain:delete - GET /v1/{project_id}/aad/domains/{domain_id}/service-config aad:domain:get - GET /v1/{project_id}/cad/domains/ports aad:domain:list - GET /v1/{project_id}/cad/domains/name aad:domain:get - GET /v1/{project_id}/cad/domains/line/{enterprise_project_id} aad:domain:list - GET /v1/{project_id}/cad/domains/instances aad:domain:get - GET /v1/{project_id}/cad/domains/brief aad:domain:get - GET /v1/{project_id}/aad/domains/waf-list aad:domain:list - GET /v1/{project_id}/cad/domains aad:domain:list - POST /v1/{project_id}/aad/domains/{domain_id}/service-config aad:domain:put - POST /v1/{project_id}/cad/domains/switch aad:domain:put - POST /v1/{project_id}/cad/domains/cnameDispatchSwitch aad:domain:put - POST /v1/{project_id}/cad/domains/cname/switch aad:domain:put - POST /v1/{project_id}/cad/instances/protocol_rule aad:forwardingRule:create - POST /v1/{project_id}/cad/instances/protocol_rule/import aad:forwardingRule:create - DELETE /v1/{project_id}/cad/instances/protocol_rule/{rule_id} aad:forwardingRule:delete - POST /v1/{project_id}/cad/instances/protocol_rule/batchdel aad:forwardingRule:delete - GET /v1/{project_id}/cad/instances/rules aad:forwardingRule:get - GET /v1/{project_id}/cad/instances/protocol_rule/export aad:forwardingRule:list - PUT /v1/{project_id}/cad/instances/protocol_rule/{rule_id} aad:forwardingRule:put - POST /v1/{project_id}/cad/instances/cad_open aad:instance:create - GET /v1/{project_id}/cad/products aad:instance:create - GET /v1/{project_id}/{resource_type}/{resource_id}/tags aad:instance:get - GET /v1/{project_id}/cad/upgradeproducts/{instance_id} aad:instance:get - GET /v1/{project_id}/cad/instances/detail/{instance_id} aad:instance:get - GET /v1/{project_id}/aad/instances/brief-list aad:instance:list - GET /v1/{project_id}/cad/sourceip aad:instance:list - GET /v1/{project_id}/cad/instances aad:instance:list - POST /v1/{project_id}/{resource_type}/{resource_id}/tags/action aad:instance:put - POST /v1/{project_id}/cad/instances/cad_spec_upgrade aad:instance:put - PUT /v1/{project_id}/cad/instances/{instance_id}/name aad:instance:put - PUT /v1/{project_id}/cad/instances/{instance_id}/elastic/{ip_id} aad:instance:put - POST /v1/{project_id}/aad/policies/waf/cc aad:policy:create - POST /v1/cnad/policies aad:policy:create - DELETE /v1/{project_id}/aad/policies/waf/cc/{rule_id} aad:policy:delete - DELETE /v1/cnad/policies/{policy_id} aad:policy:delete - GET /v1/{project_id}/cad/flowblock aad:policy:get - GET /v1/cnad/policies/{policy_id} aad:policy:get - GET /v1/{project_id}/aad/policies/waf/cc aad:policy:list - GET /v1/cnad/policies aad:policy:list - PUT /v1/{project_id}/aad/policies/waf/cc/{rule_id} aad:policy:put - POST /v1/{project_id}/cad/flowblock/udp aad:policy:put - POST /v1/{project_id}/cad/flowblock/foreign aad:policy:put - POST /v1/cnad/policies/{policy_id}/ip-list/add aad:policy:put - POST /v1/cnad/policies/{policy_id}/bind aad:policy:put - POST /v1/cnad/policies/{policy_id}/ip-list/delete aad:policy:put - POST /v1/cnad/policies/{policy_id}/unbind aad:policy:put - PUT /v1/cnad/policies/{policy_id} aad:policy:put - GET /v1/{project_id}/aad/quotas/domain-port aad:quotas:get - GET /v1/{project_id}/scc/waf/quota aad:quotas:get - GET /v1/{project_id}/cad/quotas aad:quotas:get - GET /v1/{project_id}/cad/ip/quotas aad:quotas:get - GET /v1/{project_id}/cad/bwlist/quota aad:quotas:get - GET /v1/{project_id}/aad/user-configs aad:quotas:get - POST /v1/{project_id}/cad/bwlist aad:whiteBlackIpRule:create - POST /v1/{project_id}/cad/bwlist/delete aad:whiteBlackIpRule:delete - GET /v1/{project_id}/cad/bwlist aad:whiteBlackIpRule:list - PUT /v1/cnad/protected-ips/tags aad:protectedIp:put - GET /v1/cnad/protected-ips aad:protectedIp:list - POST /v1/cnad/packages/{package_id}/protected-ips aad:package:put - PUT /v1/cnad/packages/{package_id}/name aad:package:put - GET /v1/cnad/packages aad:package:list - GET /v1/cnad/packages/{package_id}/unbound-protected-ips aad:package:list - POST /v1/unblockservice/{domain_id}/unblock aad:block:put - GET /v1/unblockservice/{domain_id}/block-list aad:block:list - GET /v1/unblockservice/{domain_id}/unblock-quota-statistics aad:block:get - GET /v1/unblockservice/{domain_id}/block-statistics aad:block:get - GET /v1/unblockservice/{domain_id}/unblock-record aad:block:get - GET /v1/{project_id}/cad/instances/{instance_id}/elastic_count/{ip_id} aad:instance:get - GET /v1/{project_id}/cad/instances/{data_center}/elastic/{line}/{ip_id} aad:instance:get - GET /v1/aad/remain-vip-number aad:quotas:get - GET /v1/aad/instance/connection-num aad:dashboard:get - PUT /v1/{project_id}/cad/instances/{instance_id}/pp-switch aad:instance:put - GET /v1/aad-service/ces/{domain_id}/dims-info aad:instance:list - GET /v1/aad-service/ces/v2/{domain_id}/instances aad:instance:list - GET /v1/{project_id}/cad/instances/security-statistics aad:instance:list - GET /v1/aad/domain/instances/rules aad:domain:list - POST /v1/aad/policy/modify aad:policy:put - POST /v1/aad/geoip aad:policy:put - GET /v1/aad/geoip aad:policy:get - DELETE /v1/aad/geoip/{ruleId} aad:policy:delete - PUT /v1/aad/geoip/{ruleId} aad:policy:put - POST /v1/aad/whiteip aad:policy:put - GET /v1/aad/whiteip aad:policy:get - DELETE /v1/aad/whiteip aad:policy:delete - POST /v1/aad/custom aad:policy:put - GET /v1/aad/custom aad:policy:get - PUT /v1/aad/custom/{ruleId} aad:policy:put - DELETE /v1/aad/custom/{ruleId} aad:policy:delete - GET /v1/aad/policy/details aad:policy:get - POST /v1/aad/cc/intelligent/modify aad:policy:put - GET /v1/aad/geoip/map aad:policy:get - GET /v1/aad/instances/{instance_id}/{ip}/ddos-statistics aad:dashboard:get - GET /v1/aad/protected-domains/{domain_id} aad:domain:get - GET /v1/aad/protected-domains aad:domain:list - PUT /v1/aad/protected-domains/{domain_id} aad:domain:put - POST /v1/aad/instances/{instance_id}/{ip}/rules/batch-create aad:forwardingRule:create - POST /v1/aad/instances/{instance_id}/{ip}/rules/batch-delete aad:forwardingRule:delete - GET /v1/aad/instances/{instance_id}/{ip}/rules aad:forwardingRule:list - PUT /v1/aad/instances/{instance_id}/{ip}/rules/{rule_id} aad:forwardingRule:put - GET /v1/aad/instances aad:instance:list -
  • 解绑标签策略 方式一: 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台,进入组织管理页面。 选中要解绑标签策略的OU或者账号。 在右侧详情页,选策略页签,展开“标签策略”列表,在列表中单击要解绑的标签策略操作列的“解绑”。 图3 解绑标签策略 在弹窗中单击“解绑”,完成策略解绑。 方式二: 在Organizations控制台,进入策略管理页。 单击“标签策略”,进入标签策略列表。 单击标签策略的名称,选择“目标”页签。 单击需要解绑的OU或账号操作列的“解绑”。 图4 解绑标签策略 单击“确定”,完成策略解绑。
  • 绑定标签策略 方式一: 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台,进入组织管理页面。 选中要绑定标签策略的OU或者账号。 在右侧详情页,选择策略页签。展开“标签策略”列表,单击列表上方的“绑定”。 图1 绑定标签策略 在弹窗中选择要添加的策略后,单击“绑定”,完成策略绑定。 方式二: 在Organizations控制台,进入策略管理页。 单击“标签策略”,进入标签策略列表。 单击标签策略操作列的“绑定”,选中要绑定标签策略的OU或者账号。 图2 绑定标签策略 单击“确定”,完成策略绑定。
  • 查看账号列表 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台。 进入账号管理页,选择“账号列表”页签。 在列表中可查看组织中的全部账号及其相关信息。 在列表中单击账号名,可查看账号的详细信息。 在列表中的操作列,可对账号进行移动、移除、关闭操作。 邀请加入组织的账号可执行移动和移除操作,在组织中创建的账号可执行移动和关闭操作。 在列表左上方单击“添加”,可进行邀请现有账号和创建新账号加入组织的操作。 图1 账号相关操作
  • 绑定SCP 方式一: 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台,进入组织管理页面。 选中要绑定SCP的OU或者账号。 在右侧详情页,选择策略页签,展开“服务控制策略”列表,单击列表上方的“绑定”。 图1 绑定SCP 在弹窗中选择要添加的策略后,单击“绑定”,完成策略绑定。 方式二: 在Organizations控制台,进入策略管理页。 单击“服务控制策略策略”,进入SCP策略列表页。 单击SCP策略操作列的“绑定”,选中要绑定SCP策略的OU或者账号。 单击“确定”,完成策略绑定。
  • 解绑SCP 方法一: 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台,进入组织管理页面。 选中要解绑SCP的OU或者账号。 在右侧详情页,选策略页签,展开“服务控制策略”列表,在列表单击要解绑的SCP操作列的“解绑”。 在弹窗中单击“确定”,完成策略解绑。 OU和账号至少直接绑定一个SCP,最后一个直接绑定策略,不可解绑。 方式二: 在Organizations控制台,进入策略管理页。 单击“服务控制策略策略”,进入SCP策略列表页。 单击SCP策略的名称,选择“目标”页签。 单击需要解绑的OU或账号操作列的“解绑”。 单击“确定”,完成策略解绑。
  • 启用SCP 在创建SCP并将其附加到组织单元和账号之前,必须先启用SCP,且只能使用组织的管理账号启用SCP。启用SCP后,组织将自动给所有OU和账号绑定FullAccess策略,默认允许所有操作。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台。 进入策略管理页,单击“服务控制策略”操作列的“启用”。 图1 启用SCP 在弹窗中勾选确认框,然后单击“启用”,完成SCP功能启用。
  • 禁用SCP 如果您不想再使用SCP管理组织权限,可以禁用SCP,且只能使用组织的管理账号禁用SCP。 禁用SCP后,所有SCP会自动从组织中的所有实体解绑,包括所有OU和账号,但是策略本身不会被删除。 若禁用SCP后再重新启用SCP,则组织中的所有实体将恢复到只绑定FullAccess的状态。实体与其他SCP的绑定关系将丢失,如需恢复则需要用户重新绑定。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台。 进入策略管理页,单击“服务控制策略”操作列的“禁用”。 图2 禁用SCP 在弹窗中单击“确定”,完成SCP功能禁用。
  • 条件(Condition) 条件(Condition)是SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀为服务缩写,如config:)仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。 Config定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表4 Config支持的服务级条件键 服务级条件键 类型 单值/多值 说明 rms:AuthorizedAccountOrgPath string 单值 根据指定的资源聚合授权账号的Organizations Path过滤访问。
  • 删除组织的影响 对管理账号的影响 管理账号将成为独立账号。您可以继续将此账号作为独立账号使用,也可以使用它创建不同的组织,它也可以作为成员账号接受其他组织的邀请。 组织的管理账号从来不受服务控制策略(SCP)的影响,所以组织删除后,管理账号及管理账号的IAM用户权限没有任何更改。 对成员账号的影响 成员账号将成为独立账号。您可以继续将它作为独立账号使用,也可以使用它创建不同的组织,它也可以作为成员账号接受其他组织的邀请。 删除组织后,组织的成员账号将不再受到服务控制策略(SCP)的影响,成员账号及成员账号的IAM用户权限可能会发生改变。 对策略的影响 如果您删除组织,则无法恢复它。如果您在组织内创建了服务控制策略,则也将删除这些策略,并且将不能恢复。
  • 创建OU 您可以在组织的根下创建OU。OU最深可嵌套至5层。创建OU请执行以下步骤。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台,进入组织管理页面。 在组织结构树中选中父OU的名称(而不是展开框)。如您是首次创建OU,则需选中根OU的名称(即Root)。 OU最深可嵌套5层,一个OU只能有一个父OU,一个OU下可以关联多个子OU。父OU即为上一层的OU,创建OU时请确保选中正确的父OU。 单击组织结构树上方的“添加”,单击“添加组织单元”。 图1 添加组织单元 在弹窗中填写组织单元名称,然后单击“确定”,完成OU创建。 父主题: OU管理
  • 修改标签策略 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台。 进入策略管理页,单击“标签策略”,进入标签策略列表。 单击标签策略操作列的“编辑”,进入编辑标签策略页面。 可根据需要修改“策略名称”和“策略描述”。 按需修改策略内容。可通过“可视化编辑器”和“JSON”两种方式进行修改。 图1 编辑标签策略 单击右下角“保存”后,如跳转到标签策略列表,则标签策略修改成功。
  • 禁用标签策略 如果您不想再使用标签策略管理组织的标签规则,可以禁用标签策略,但只有组织的管理账号才可以禁用标签策略。 禁用标签策略后,所有标签策略会自动从组织中的所有实体解绑,包括所有OU和账号,但是策略本身不会被删除。 若禁用标签策略后再重新启用标签策略,实体与其他标签策略的绑定关系将丢失,如需恢复则需要管理账号重新绑定。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台。 进入策略管理页,单击标签策略操作列的“禁用”。 图2 禁用标签策略 在弹窗中单击“确定”,完成标签策略禁用。
  • 管理组织的待处理邀请 登录到管理账号后,您可以查看和管理组织创建的邀请,具体步骤如下。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台,进入账号管理页面。 选择“邀请记录”页签,此页面展示组织发送的所有邀请及当前状态。 单击邀请记录操作列的“取消邀请” ,在弹框中单击“确定”可完成邀请取消。您只能取消“邀请中”的账号。 取消邀请后,邀请的状态将从“邀请中”更改为 “已取消”。邀请取消后若要再次邀请当前账号,则必须重新发出邀请,才能让其加入您的组织。 图3 取消邀请
  • 向账号发送邀请 您可通过以下步骤,邀请其他账号加入组织,成为组织的成员账号。注意,邀请进入组织的成员账号会默认放置到根OU中,更换所属OU请参见移动成员账号。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台,进入组织管理页面。 单击“添加”,单击“添加账号”。 图1 添加账号 在弹窗中,选择“邀请现有账号”,输入邀请账号的账号ID。 如何获取账号ID参见:获取账号ID。 图2 邀请现有账号 (可选)为账号添加标签。 标签以键值对的形式表示,用于标识账号,便于对账号进行分类和搜索。一个账号最多添加20个标签。 标签的设置说明如表1所示。 表1 标签说明 参数 说明 举例 键 输入标签的键,同一个账号标签的键不能重复。键可以自定义,也可以选择预先在标签管理服务(TMS)创建好的标签的键。 键命名规则如下: 不能为空。 长度为1~128个字符。 由英文字母、数字、下划线、中划线、UNICODE字符(\u4E00-\u9FFF)组成。 Key_0001 值 输入标签的值,标签的值可以重复,并且可以为空。 标签值的命名规则如下: 可以为空。 长度为1~225个字符。 由英文字母、数字、下划线、点、中划线、UNICODE字符(\u4E00-\u9FFF)组成。 Value_0001 单击“确定”,即可向受邀账号发出邀请。
  • 接受或拒绝来自组织的邀请 您的账号可能会收到加入某个组织的邀请,您可以接受或拒绝邀请。 一个账号只能加入一个组织。如果您收到多个加入组织邀请,只能接受其中一个。如果当前您已加入组织,则需要退出当前组织后,才能再次接受组织邀请。 以受邀成员账号的身份登录华为云,进入华为云Organizations控制台。 此时界面会向你展示邀请列表。接受邀请则单击对应邀请操作列的“接受”,拒绝邀请则单击对应邀请操作列的“拒绝”。 图4 查看邀请
  • 支持SCP的云服务 当前支持使用SCP的云服务如下表所示: 支持SCP的各云服务相关文档中列出的授权项仅支持在SCP中使用。 表1 支持SCP的云服务 服务名称 相关文档 标签管理服务(TMS) 标签管理服务 TMS 资源访问管理(RAM) 资源访问管理 RAM 安全令牌服务(STS) 安全令牌服务 STS 配置审计(Config)(原 资源管理服务 RMS) 配置审计 Config 组织(Organizations) 组织 Organizations 文档数据库服务(DDS) 文档数据库服务 DDS 云数据库(RDS) 云数据库 RDS 企业主机安全服务(HSS) 主机安全服务 HSS 容器镜像服务(SWR) 容器镜像服务 SWR 弹性公网IP(EIP) 弹性公网IP EIP 镜像服务(IMS) 镜像服务 IMS 裸金属服务(BMS) 裸金属服务器 BMS 消息通知服务(SMN) 消息通知服务 SMN 虚拟私有云(VPC) 虚拟私有云 VPC 弹性云服务器(ECS) 弹性云服务器 ECS 安全云脑(SecMaster) 安全云脑 SecMaster 弹性负载均衡(ELB) 弹性负载均衡 ELB 分布式缓存服务(DCS) 分布式缓存服务 DCS NAT网关(NAT) NAT网关 NAT 内容分发网络(CDN) 内容分发网络 CDN 云容器引擎(CCE) 云容器引擎 CCE VPC终端节点(VPCEP) VPC终端节点 VPCEP 云日志服务(LTS) 云日志服务 LTS IAM身份中心(IdentityCenter) IAM身份中心 原生基础防护(Anti-DDoS) 原生基础防护 Anti-DDoS DDoS高防(AAD) DDoS高防 AAD 企业项目管理服务 (EPS) 企业项目管理 EPS SSL证书管理服务(SCM) SSL证书管理服务 SCM 私有证书管理服务(PCA) 私有证书管理服务 PCA 统一身份认证(IAM) 统一身份认证 IAM 设备接入(IoTDA) 设备接入 IoTDA 应用管理与运维平台(Servicestage) 应用管理与运维平台 ServiceStage 资源编排服务(RFS) 资源编排服务 RFS 访问分析(AccessAnalyzer) 访问分析 IAM Access Analyzer 云审计服务(CTS) 云审计服务 CTS 云防火墙(CFW) 云防火墙 CFW 云专线(DC) 云专线 DC 流水线(CodeArts Pipeline) 流水线 Codearts Pipeline 软件开发生产线(CodeArts) 软件开发生产线 CodeArts 微服务引擎(CSE) 微服务引擎 CSE 数据湖探索(DLI) 数据湖探索 DLI 父主题: 服务控制策略管理
  • 移除须知 移除账号之前,您需要了解以下内容: 要移除的账号不能是组织任何可信服务的委托管理员账号。如果该账号是委托管理员,则必须先将账号从委托管理员账号更改为普通账号后,才能移除该账号。有关如何禁用或更改委托管理员账号的更多信息,请参见添加、查看和取消委托管理员。 当某个成员账号离开组织后,该账号不再有权访问其属于该组织时的数据。但是,组织的管理账号仍可以访问这些数据。如果该成员账号重新加入组织,则其将可以再次访问这些数据。 当成员账号离开组织时,所有附加到该账号的标签都将被删除。 被移除的成员账号不再受组织内的任何策略影响。这意味着,服务控制策略施加的权限限制将不再影响该账号,该账号中的IAM用户可能比之前拥有更多权限。 仅通过邀请方式加入组织的成员账号可以被移除和主动退出组织,通过组织云服务创建的账号无法被移除,也无法主动退出组织。
  • 成员账号退出组织 登录成员账号后,您可以选择从组织中退出。管理账号不能使用“退出组织”的方法离开组织,要移除管理账号,您必须删除组织。 要退出组织的成员账号不能是任何可信服务的委托管理员账号。如果该账号是委托管理员,则需先取消其委托管理员身份,具体请参见添加、查看和取消委托管理员。 以成员账号的身份登录华为云,进入华为云Organizations控制台。 在控制面板页面中的退出组织栏目下,单击“退出组织”,在弹窗中选择“退出”,完成退出组织操作。 图2 退出组织
  • 条件(Condition) 条件(Condition)是自定义SCP生效的特定条件,包括和。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:。 服务级条件键(前缀为服务缩写,如dli:)仅适用于对应服务的操作,详情请参见表5。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:。 DLI定义了以下可以在自定义SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表5 DLI支持的服务级条件键 服务级条件键 类型 单值/多值 说明 dli:VpcId string 单值 根据虚拟网络ID筛选访问权限。
  • 编辑函数程序 打开创建的函数iotdemo,复制以下坐标转换代码,仅供测试不建议用于生产用途,用户也可以根据自己的需要修改。 # -*- coding:utf-8 -*- import json import math from math import pi def handler(event, context): data = event["notify_data"]["body"] lat = data["lat"] lng = data["lng"] print(f" WGS84: ({lng},{lat})") gcj_lng, gcj_lat = transform(lng, lat) print(f" GCJ02: ({gcj_lng},{gcj_lat})") body = { "gcj_lng": gcj_lng, "gcj_lat": gcj_lat } return { "statusCode": 200, "isBase64Encoded": False, "body": json.dumps(body), "headers": { "Content-Type": "application/json" } } def transform(lon, lat): a = 6378245.0 ee = 0.00669342162296594323 dlat = transform_lat(lon - 105.0, lat - 35.0) dlon = transform_lon(lon - 105.0, lat - 35.0) rad_lat = lat / 180.0 * pi magic = math.sin(rad_lat) magic = 1 - ee * magic * magic sqrt_magic = math.sqrt(magic) dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrt_magic) * pi) dlon = (dlon * 180.0) / (a / sqrt_magic * math.cos(rad_lat) * pi) mg_lon = lon + dlon mg_lat = lat + dlat return mg_lon, mg_lat def transform_lon(x, y): ret = 300.0 + x + 2.0 * y + 0.1 * x * x + \ 0.1 * x * y + 0.1 * math.sqrt(math.fabs(x)) ret += (20.0 * math.sin(6.0 * pi * x) + 20.0 * math.sin(2.0 * pi * x)) * 2.0 / 3.0 ret += (20.0 * math.sin(pi * x) + 40.0 * math.sin(pi / 3.0 * x)) * 2.0 / 3.0 ret += (150.0 * math.sin(pi / 12.0 * x) + 300.0 * math.sin(pi / 30.0 * x)) * 2.0 / 3.0 return ret def transform_lat(x, y): ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + \ 0.1 * x * y + 0.2 * math.sqrt(math.fabs(x)) ret += (20.0 * math.sin(6.0 * pi * x) + 20.0 * math.sin(2.0 * pi * x)) * 2.0 / 3.0 ret += (20.0 * math.sin(pi * y) + 40.0 * math.sin(pi / 3.0 * y)) * 2.0 / 3.0 ret += (160.0 * math.sin(pi / 12.0 * y) + 320 * math.sin(pi / 30.0 * y)) * 2.0 / 3.0 return ret
  • 创建函数流 返回函数工作流控制台,在左侧导航栏选择“函数流”,进入函数流列表界面。 单击“创建快速函数流”,进入创建快速函数流流程。 图2 创建快速函数流 拖拽一个函数节点,单击函数节点配置元信息: 应用:默认“default”; 函数:选择上一步创建好的函数test-rotate; 版本:默认“latest”; 其他参数默认值即可。 图3 配置元信息 参数配置完成后,单击“确定”。 函数流节点创建完成后,单击右上角“保存”,配置如下函数流基本信息,完成后单击“确定”,完成函数流创建。 名称:test-rotate-workflow; 企业项目:默认“default”; 日志记录:默认“ALL”; 其他参数保持默认值。 图4 保存函数流
  • 创建程序包 本例使用Python语言实现为图片打水印的功能,有关函数开发的过程请参考Python函数开发。本例不再介绍业务功能实现的代码,样例代码目录如图1所示。 图1 样例代码目录 其中index.py为函数执行的入口文件,index.py中入口函数的代码片段如下,参数“obs_output_bucket”为打水印后的图片存储地址,需要在创建函数时配置自定义参数。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def handler(event, context): srcBucket, srcObjName = getObjInfoFromObsEvent(event) outputBucket = context.getUserData('obs_output_bucket') client = newObsClient(context) # download file uploaded by user from obs localFile = "/tmp/" + srcObjName downloadFile(client, srcBucket, srcObjName, localFile) outFileName, outFile = watermark_image(localFile, srcObjName) # 将转换后的文件上传到新的obs桶中 uploadFileToObs(client, outputBucket, outFileName, outFile) return 'OK'
  • 创建委托 如下示例表示:为FuntionGraph赋予Tenant Administrator权限,仅在授权区域生效。 按照如下参数设置委托,创建委托的具体步骤请参见如何创建委托。 登录统一身份认证服务(IAM)控制台。 在统一身份认证服务(IAM)的左侧导航窗格中,选择“委托”页签,单击右上方的“+创建委托”。 图1 创建委托 开始配置委托。 图2 填写基本信息 委托名称:serverless-trust。 委托类型:选择“云服务”。 云服务:选择“函数工作流 FunctionGraph”。 持续时间:选择“永久”。 描述:填写描述信息。 单击“下一步”,进入委托选择页面,在右方搜索框中搜索需要添加的权限并勾选。此处以添加Tenant Administrator权限为例。 图3 选择策略 表2 委托权限示例 权限名称 使用描述/场景 Tenant Administrator 全部云服务管理员(除IAM管理权限),拥有该权限的用户可以对企业拥有的所有云资源执行任意操作。 单击“下一步”,选择权限的作用范围。 图4 根据业务需要选择对应的权限
  • 应用场景 若您在FunctionGraph服务中使用如下场景,请先创建委托。创建委托时授予的权限类型请您根据实际业务需要进行调整,比如前期您在开发阶段授予Admin权限,后期在生产环境中建议您调整为细粒度最小使用权限,保证业务所需权限的同时,也降低权限过大的风险。具体对应授权项参见表1 常见授权项选择进行选择。 表1 常见授权项选择 场景 Admin权限 细粒度最小使用权限 说明 使用自定义镜像 SWR Admin 暂不支持 SWR Admin:容器镜像服务(SWR)管理员,拥有该服务下的所有权限。 如何创建自定义镜像,请参见使用容器镜像部署函数。 挂载SFS文件系统 SFS Administrator 暂不支持 SFS Administrator:弹性文件服务(SFS)管理员,拥有该服务下的所有权限。 如何挂载SFS文件系统,请参见添加SFS容量型文件系统。 挂载sfs turbo文件系统 SFS Administrator sfsturbo:shares:getShare(查询单个文件系统详细信息) SFS Administrator:弹性文件服务(SFS)管理员,拥有该服务下的所有权限。 sfsturbo:shares:getShare:您拥有SFS服务下查询单个文件系统信息的权限。 如何挂载挂载sfs turbo文件系统,请参见添加sfs turbo文件系统。 挂载ECS共享目录 Tenant Guest及VPC Administrator ecs:cloudServers:get(查询云服务器详情) Tenant Guest:全部云服务只读权限(除IAM权限) VPC Administrator:网络管理员 ecs:cloudServers:get:您拥有ECS服务下查询云服务器信息的权限。 如何挂载ECS共享目录,请参见添加ECS共享目录。 使用APM调用链 APM Administrator 暂不支持 APM Administrator:应用性能管理服务管理员。 该功能无需配置委托,只需您账号拥有APM服务相关权限以及函数“设置”修改权限即可配置和查询。 如何开通APM调用链,请参见调用链管理。 使用DIS触发器 DIS Administrator 暂不支持 数据接入服务(DIS)管理员,拥有该服务下的所有权限。 如何创建DIS触发器,请参见使用DIS触发器。 配置跨域VPC访问 VPC Administrator vpc:ports:delete(删除端口) vpc:ports:get(查询端口) vpc:ports:create(创建端口) vpc:vpcs:get(查询VPC) vpc:subnets:get(查询子网) 拥有VPC Administrator权限的用户可以对VPC内所有资源执行任意操作。在函数配置跨VPC访问时,则函数必须配置具备VPC管理权限的委托。 VPC细粒度最小使用权限:您拥有VPC服务下删除端口、查询端口、创建端口、查询VPC、查询子网的权限。 如何配置跨域VPC访问,请参见配置网络。 读取云解析服务(DNS)的资源 DNS ReadOnlyAccess dns:recordset:get(查询租户Record Set资源列表) dns:zone:get(查询租户zone) DNS ReadOnlyAccess:云解析服务只读权限,拥有该权限的用户仅能查看云解析服务资源。在函数配置调用DNS服务的接口解析内网域名时,则函数必须具备读取DNS资源权限的委托。 DNS细粒度最小使用权限:您拥有DNS服务下查询租户Record Set资源列表和查询租户zone的权限。 如何调用DNS服务的接口解析内网域名,请参见解析DNS内网域名。 创建OBS桶和OBS触发器 OBS Administrator obs:bucket:GetBucketLocation(获取桶区域位置) obs:bucket:ListAllMyBuckets(获取桶列表) obs:bucket:GetBucketNotification(获取桶的消息通知配置) obs:bucket:PutBucketNotification(设置桶的消息通知配置) OBS Administrator:对象存储服务管理员。 OBS细粒度最小使用权限:你拥有OBS服务下获取桶区域位置、获取桶列表、获取桶的消息通知配置、设置桶的消息通知配置的权限。 如何创建OBS触发器,请参见使用OBS触发器。
  • 场景介绍 使用磁盘挂载功能需要开放如下端口: 111、445、2049、2051、2052、20048。 对于Ubuntu系统还需再开放3个端口,获取方式请在任意目录下执行如下命令。 rpcinfo -p|grep mountd|grep tcp 具体请参见弹性文件服务会占用用户的哪些资源。 目前FunctionGraph函数支持以下文件系统配置。 SFS文件系统 弹性文件服务(Scalable File Service,SFS)提供按需扩展的高性能文件存储(NAS),可为云上多个弹性云服务器(Elastic Cloud Server,ECS),容器(CCE&CCI),裸金属服务器(BMS)提供共享访问。SFS为用户提供一个完全托管的共享文件存储,能够弹性伸缩至PB规模,具备高可用性和持久性,为海量数据、高带宽型应用提供有力支持。适用于多种应用场景,包括HPC、媒体处理、文件共享、内容管理和Web服务等。 SFS Turbo文件系统 SFS Turbo分为SFS Turbo标准型(500GB~32TB)、SFS Turbo标准型-增强版(10TB~320TB)、SFS Turbo性能型(500GB~32TB)和SFS Turbo性能型-增强版(10TB~320TB)。SFS Turbo为用户提供一个完全托管的共享文件存储,能够弹性伸缩至320TB规模,具备高可用性和持久性,为海量的小文件、低延迟高IOPS型应用提供有力支持。适用于多种应用场景,包括高性能网站、日志存储、压缩解压、DevOps、企业办公、容器应用等。详情请参见SFS产品介绍。 ECS共享目录 ECS共享目录是通过nfs服务,把ECS上的指定目录设置为共享文件系统(详情请参见添加ECS共享目录),函数(和ECS相同的VPC配置)可以挂载对应目录进行读写等操作,实现计算资源的动态扩展。此类型适合业务不太频繁的场景。 使用文件系统挂载功能具有以下优势: 函数执行空间相比于/tmp,可以极大扩展存储空间。 多个函数之间可以共享访问已经配置好的文件系统。 ECS计算资源动态扩展,利用ECS已有的存储能力实现更大的计算能力。 您可以在/tmp路径下写临时文件,最大不能超过10,240MB。
  • 添加sfs turbo文件系统 设置委托 挂载sfs turbo文件系统需要给函数设置委托(至少拥有sfs administrator以及VPC administrator权限)。如果没有对应权限的委托,需要新创建。 设置VPC sfs turbo涉及VPC内部网络访问,添加sfs turbo文件系统前需要给函数配置sfs turbo对应的VPC。 在弹性文件服务中,获取需要挂载的文件系统的VPC和子网信息,具体操作请参见管理文件系统。 参见配置网络开启VPC访问,输入1中获取的VPC和子网。 添加挂载-SFS Turbo 添加sfs turbo和添加sfs过程相似,只要选好需要挂载的文件系统,设置好函数访问路径即可。
  • 添加ECS共享目录 添加委托 挂载ECS共享目录需要给函数设置委托(至少拥有tenant guest以及VPC administrator权限),如果没有对应权限的委托,需要新创建,详情请参见创建委托。 配置VPC 添加ECS共享目录前,也需要给函数配置ECS对应的VPC,可以到ECS详情页的“基本信息”页签中查看“虚拟私有云”。单击虚拟私有云名称,进入虚拟私有云的详情页,查看子网。 获取到这两个信息后,可以在函数配置中配置对应的VPC。 添加挂载-ECS 需要在界面上输入ECS上的共享目录路径信息和函数访问路径。 图1 填写路径信息
  • 修订记录 发布日期 修订记录 2024-05-28 新增 批作业SQL常用配置项说明新增配置参数:spark.sql.legacy.correlated.scalar.query.enabled 使用Hive语法创建OBS表新增关于设置多字符分隔符的使用示例。 使用Hive语法创建DLI表新增关于设置多字符分隔符的使用示例。 2024-02-01 新增 Spark开源命令支持说明。 2024-01-30 优化 使用DataSource语法创建OBS表,补充CTAS创建分区表约束限制说明。 使用Hive语法创建OBS表,补充CTAS创建分区表约束限制说明。 使用DataSource语法创建DLI表,补充CTAS创建分区表约束限制说明。 使用Hive语法创建DLI表,补充CTAS创建分区表约束限制说明。 2023-11-17 优化 创建函数,删除关键字TEMPORARY。 2023-11-09 优化 使用DataSource语法创建OBS表,补充示例代码。 使用Hive语法创建OBS表,补充示例代码。 使用DataSource语法创建DLI表,补充示例代码。 使用Hive语法创建DLI表,补充示例代码。 2023-09-22 优化 内置函数,优化日期函数、字符串函数、数学函数、聚合函数、分析窗口函数、其他函数的内容。 2023-08-14 新增 修改列注释 2023-08-01 新增 跨源连接Oracle表。 2023-04-02 修改 使用DataSource语法创建OBS表,修改建表相关参数说明。 2023-02-23 修改 使用DataSource语法创建OBS表,修改PERMISSIVE参数说明。 2023-01-11 修改 DDL语法定义,补充对CREATE FUNCTION语句的功能描述。 2022-11-09 修改 创建DLI表关联HBase,补充约束该语法不支持安全集群。 2022-10-26 修改 时间函数,描述信息中补充FROM_UNIXTIME(numeric[, string])的单位。 窗口,补充time_attr参数说明。 2022-09-01 修改OBS输出流,修改关键字说明。
共100000条