华为云用户手册

  • 修改SCP 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台。 进入策略管理页,单击“服务控制策略”,进入SCP管理页。 单击要修改SCP操作列的“编辑”。 可根据需要修改“策略名称”和“策略描述”。如图1所示。 图1 修改SCP 按需修改策略内容。可使用语句编辑器进行修改,策略语法请参考SCP语法介绍。 单击右下角“保存”后,系统会自动校验语法,如跳转到策略列表,则SCP编辑成功;如系统提示策略内容有误,则请按照语法规范进行修改。
  • 策略参数 策略参数包含Version和Statement两部分,下面介绍策略参数详细说明。 表1 策略参数说明 参数 是否必选 含义 值 Version 必选 策略的版本。 5.0(不可自定义) Statement: 策略的授权语句 Statement Sid 可选 策略语句标识符。您可为语句数组中的每个策略语句指定Sid值。 用户自定义字符串。 Effect:作用 必选 定义Action中的操作权限是否允许执行。 Allow:允许执行。 Deny:不允许执行。 说明: 当同一个Action的Effect既有Allow又有Deny时,遵循Deny优先的原则。 当Effect为Allow时,不能有Condition元素。 Action:授权项 Allow时必选。 Deny时与NotAction二选一。 操作权限。 格式为“服务名:资源类型:操作”。授权项支持通配符号*,通配符号*表示所有。 参数中的通配符*和?只能单独使用或放在字符串结尾处。它不能出现在字符串的开头或中间部分。 例如"obs:bucket:ListAllMybuckets":表示查看OBS桶列表权限,其中obs为服务名,bucket为资源类型,ListAllMybuckets为操作。 NotAction Allow时不可选。 Deny时与Action二选一。 Deny时,NotAction列出的操作或服务不受当前策略影响,即除了NotAction列表中的操作之外,其他操作deny。 格式同Action。 Condition:条件 Allow时不可选。 使策略生效的特定条件,包括条件键和运算符。 格式为“条件运算符:{条件键:[条件值1,条件值2]}”。 如果您设置多个条件,同时满足所有条件时,该策略才生效。 示例: "StringEndWithIfExists":{"g:UserName":["specialCharactor"]}:表示当用户输入的用户名以"specialCharactor"结尾时该条statement生效。 Resource:资源类型 可选 未指定时,Resource默认为“*”,策略应用到所有资源。 策略所作用的资源。 Allow时,只能为“*”。 Deny时,可选择“*”或具体资源,格式为“服务名:region:domainId:资源类型:资源路径”, 资源类型支持通配符号*,通配符号*表示所有。 示例: "obs:*:*:bucket:*": 表示所有的OBS桶。 "obs:*:*:object:my-bucket/my-object/*": 表示my-bucket桶my-object目录下的所有对象。 SCP中不支持以下元素: Principal NotPrincipal NotResource
  • 运算符 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,策略才能生效。运算符可以增加后缀“IfExists”,表示对应请求值为空或满足条件的请求值均使策略生效,如“StringEqualsIfExists”表示请求值为空或请求值等于条件值均使策略生效。运算符为字符串型运算符,表格中如未增加说明,不区分大小写。 String类型 表3 String类型运算符 类型 运算符 说明 String StringEquals 请求值与任意一个条件值相同(区分大小写)。 StringNotEquals 请求值与所有条件值都不同(区分大小写)。 StringEqualsIgnoreCase 请求值与任意一个条件值相同。 StringNotEqualsIgnoreCase 请求值与所有条件值都不同。 StringMatch 请求值符合任意一个条件值的正则表达式(区分大小写,正则表达式仅支持*和?)。 StringNotMatch 请求值不符合所有条件值的正则表达式(区分大小写,正则表达式仅支持*和?)。 示例:禁止用户名为ZhangSan的请求者修改资源共享实例。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "ram:resourceShares:delete", "ram:resourceShares:update" ], "Condition": { "StringEquals": { "g:DomainName": [ "ZhangSan" ] } } } ] } Number类型 表4 Number类型运算符 类型 运算符 说明 Number NumberEquals 请求值等于任意一个条件值。 NumberNotEquals 请求值不等于所有条件值。 NumberLessThan 请求值小于任意一个条件值。 NumberLessThanEquals 请求值小于或等于任意一个条件值。 NumberGreaterThan 请求值大于任意一个条件值。 NumberGreaterThanEquals 请求值大于或等于任意一个条件值。 Date类型 表5 Date类型运算符 类型 运算符 说明 Date DateLessThan 请求值早于任意一个条件值。 DateLessThanEquals 请求值早于或等于任意一个条件值。 DateGreaterThan 请求值晚于任意一个条件值。 DateGreaterThanEquals 请求值晚于或等于任意一个条件值。 示例:请求者禁止在2022年8月1日前访问 RAM 服务。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "ram:*:*" ], "Condition": { "DateLessThan": { "g:CurrentTime": [ "2022-08-01T00:00:00Z" ] } } } ] } Bool类型 表6 Bool类型运算符 类型 运算符 说明 Bool Bool 条件值可选值:true、false。请求值等于条件值。 Null类型 表7 Null类型运算符 类型 运算符 说明 Null Null 条件值可选值:true、false。条件值为true,要求请求值不存在或者值为null;条件值为false,要求请求值必须存在且值不为null。 IP类型 表8 IP类型运算符 类型 运算符 说明 IP IpAddress 指定IP地址或者IP范围。 NotIpAddress 指定IP地址或者IP范围之外的所有IP地址。 示例:拒绝IP地址在10.27.128.0到10.27.128.255范围内的请求修改指定的永久访问密钥。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "iam:credentials:updateCredentialV5" ], "Condition": { "IpAddress": { "g:SourceIp": [ "10.27.128.0/24" ] } } } ] } “IfExists”运算符后缀 除Null运算符以外,您可以在任何条件运算符名称的末尾添加IfExists,例如:StringEqualsIfExists。如果请求的内容中存在条件键,则依照策略所述来进行匹配。如果该键不存在,则该条件元素的匹配结果将为true。
  • 操作步骤 为SCP自定义策略和标签策略添加标签的方法类似,以SCP为例,说明添加标签的方法。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台。 进入策略管理页,单击“服务控制策略”,进入SCP管理页。 在列表中单击自定义策略的名称,进入策略详情页。 图1 进入策略详情 选择“标签”页签,单击“添加”。 图2 策略添加标签 在弹窗中输入标签键和标签值, 单击“添加”,然后单击“确定”,完成策略的标签添加。
  • 示例流程 图1 给用户授予组织管理权限流程 创建用户组并授权 在 IAM 控制台创建用户组,授予Organizations云服务只读权限“Organizations ReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 使用新创建的用户登录控制台,能正常进入组织服务并可查看组织的相关信息,然后尝试添加组织单元报错,报错信息提示“权限不足,请联系管理员处理”,表示“Organizations ReadOnlyAccess”已生效,您只有组织的查看权限。
  • 启用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功能禁用。
  • 删除组织的影响 对管理账号的影响 管理账号将成为独立账号。您可以继续将此账号作为独立账号使用,也可以使用它创建不同的组织,它也可以作为成员账号接受其他组织的邀请。 组织的管理账号从来不受服务控制策略(SCP)的影响,所以组织删除后,管理账号及管理账号的IAM用户权限没有任何更改。 对成员账号的影响 成员账号将成为独立账号。您可以继续将它作为独立账号使用,也可以使用它创建不同的组织,它也可以作为成员账号接受其他组织的邀请。 删除组织后,组织的成员账号将不再受到服务控制策略(SCP)的影响,成员账号及成员账号的IAM用户权限可能会发生改变。 对策略的影响 如果您删除组织,则无法恢复它。如果您在组织内创建了服务控制策略,则也将删除这些策略,并且将不能恢复。
  • 阻止IAM用户和委托进行某些修改,但指定的账号除外 使用此SCP阻止IAM用户和委托对组织内所有账号创建的资源共享进行修改,但指定的账号除外。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "ram:resourceShares:update", "ram:resourceShares:delete", "ram:resourceShares:associate", "ram:resourceShares:disassociate", "ram:resourceShares:associatePermission", "ram:resourceShares:disassociatePermission" ], "Resource": [ "ram::*:resourceShare:resource-id" ], "Condition": { "StringNotEquals": { "g:DomainId": [ "account-id"【备注:此处需填写排除账号的ID】 ] } } } ] }
  • 禁止创建带有指定标签的资源 如下SCP表示禁止用户创建带有 {"team": "engineering"} 标签的资源共享实例。您可以根据需要修改SCP语句中的操作(Action)、资源类型(Resource)和条件(Condition)。 { "Version":"5.0", "Statement":[ { "Effect":"Deny", "Action":["ram:resourceShares:create"], "Resource":["*"], "Condition":{ "StringEquals":{ "g:RequestTag/team":"engineering" } } } ] }
  • 阻止成员账号退出组织 使用以下SCP阻止成员账号主动退出组织。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "organizations:organizations:leave" ], "Resource": [ "*" ] } ] }
  • 禁止根用户使用除IAM之外的云服务 使用以下SCP禁止根用户使用除IAM之外的云服务。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "NotAction": [ "iam:*:*" ], "Resource": [ "*" ], "Condition": { "Bool": { "g:PrincipalIsRootUser": [ "true" ] } } } ] }
  • 阻止IAM用户和委托进行某些修改 使用此SCP阻止IAM用户和委托对组织内所有账号创建的资源共享进行修改。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "ram:resourceShares:update", "ram:resourceShares:delete", "ram:resourceShares:associate", "ram:resourceShares:disassociate", "ram:resourceShares:associatePermission", "ram:resourceShares:disassociatePermission" ], "Resource": [ "ram::*:resourceShare:resource-id" ] } ] }
  • 阻止根用户的服务访问 使用以下SCP禁止成员账号使用根用户执行指定的操作。您可以根据需要修改SCP语句中的操作(Action)和资源类型(Resource)。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "ecs:*:*" ], "Resource": [ "*" ], "Condition": { "BoolIfExists": { "g:PrincipalIsRootUser": "true" } } } ] }
  • 禁止访问指定区域的资源 如下SCP表示禁止用户访问“regionid1”区域的E CS 服务的全部资源。您可以根据需要修改SCP语句中的操作(Action)、资源类型(Resource)和条件(Condition)。 此SCP仅适用于项目级服务,SCP中的“regionid1”仅为区域示例,使用时请填入具体区域ID。 { "Version":"5.0", "Statement":[ { "Effect":"Deny", "Action":["ecs:*:*"], "Resource":["*"], "Condition":{ "StringEquals":{ "g:RequestedRegion":"regionid1" } } } ] }
  • 禁止共享到组织外 使用以下SCP禁止本组织内的账号给组织外账号共享资源。此SCP建议绑定至组织的根OU,使其对整个组织生效。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "ram:resourceShares:create", "ram:resourceShares:associate" ], "Resource": [ "*" ], "Condition": { "ForAnyValue:StringNotLike": { "ram:TargetOrgPaths": [ "organization_id/root_id/ou_id"【备注:此处需填写组织的路径ID】 ] } } } ] }
  • 禁止共享指定类型的资源 使用以下SCP禁止用户共享VPC子网资源。您可以根据需要修改SCP语句条件键(Condition)元素中的资源类型。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "ram:resourceShares:create" ], "Resource": [ "*" ], "Condition": { "ForAnyValue:StringEquals": { "ram:RequestedResourceType": [ "vpc:subnet"【备注:可根据需要修改此处的资源类型】 ] } } } ] }
  • 禁止组织内账号给组织外的账号进行聚合授权 使用以下SCP禁止本组织内账号给组织外的账号进行聚合授权。此SCP建议绑定至组织的根OU,使组织外账号无法获取组织内账号下的资源清单信息。您也可以将此SCP绑定给接受授权的账号(源账号),禁止该账号接受来自聚合器账号的授权请求。 { "Version": "5.0", "Statement": [ { "Effect": "Deny", "Action": [ "rms:aggregationAuthorizations:create" ], "Resource": [ "*" ], "Condition": { "StringNotMatch": { "rms:AuthorizedAccountOrgPath": [ "organization_id/root_id/ou_id"【备注:此处需填写组织的路径ID】 ] } } } ] }
  • 创建OU 您可以在组织的根下创建OU。OU最深可嵌套至5层。创建OU请执行以下步骤。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台,进入组织管理页面。 在组织结构树中选中父OU的名称(而不是展开框)。如您是首次创建OU,则需选中根OU的名称(即Root)。 OU最深可嵌套5层,一个OU只能有一个父OU,一个OU下可以关联多个子OU。父OU即为上一层的OU,创建OU时请确保选中正确的父OU。 单击组织结构树上方的“添加”,单击“添加组织单元”。 图1 添加组织单元 在弹窗中填写组织单元名称,然后单击“确定”,完成OU创建。 图2 填写名称 父主题: OU管理
  • 条件(Condition) 条件(Condition)是自定义SCP生效的特定条件,包括条件键和运算符。 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。 服务级条件键(前缀为服务缩写,如iam:)仅适用于对应服务的操作,详情请参见表4。 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个 VPC终端节点 发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符。 IAM定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。 表4 IAM支持的服务级条件键 服务级条件键 类型 单值/多值 说明 iam:PolicyURN string 单值 按照身份策略的URN筛选访问权限。 iam:ServicePrincipal string 单值 按照服务关联委托传递的云服务对应的服务标识筛选访问权限。
  • 禁用标签策略 如果您不想再使用标签策略管理组织的标签规则,可以禁用标签策略,但只有组织的管理账号才可以禁用标签策略。 禁用标签策略后,所有标签策略会自动从组织中的所有实体解绑,包括所有OU和账号,但是策略本身不会被删除。 若禁用标签策略后再重新启用标签策略,实体与其他标签策略的绑定关系将丢失,如需恢复则需要管理账号重新绑定。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台。 进入策略管理页,单击标签策略操作列的“禁用”。 图2 禁用标签策略 在弹窗中单击“确认”,完成标签策略禁用。
  • 向账号发送邀请 您可通过以下步骤,邀请其他账号加入组织,成为组织的成员账号。注意,邀请进入组织的成员账号会默认放置到根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 查看邀请
  • 管理组织的待处理邀请 登录到管理账号后,您可以查看和管理组织创建的邀请,具体步骤如下。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台,进入账号管理页面。 选择“邀请记录”页签,此页面展示组织发送的所有邀请及当前状态。 单击邀请记录操作列的“取消邀请” ,在弹框中单击“确认”可完成邀请取消。您只能取消“邀请中”的账号。 取消邀请后,邀请的状态将从“邀请中”更改为 “已取消”。邀请取消后若要再次邀请当前账号,则必须重新发出邀请,才能让其加入您的组织。 图3 取消邀请
  • 操作步骤 修改SCP自定义策略和标签策略标签的方法类似,以SCP为例,说明修改标签的方法。 以组织管理员或管理账号的身份登录华为云,进入华为云Organizations控制台。 进入策略管理页,单击服务控制策略,进入SCP管理页。 在列表中单击自定义策略的名称,进入策略详情页。 图1 进入策略详情 选择标签页签,单击要修改标签操作列的“编辑”。 在弹窗中输入修改后标签值, 单击“确定”,完成策略的标签修改。
  • 操作(Action) 操作(Action)即为SCP中支持的授权项。 “访问级别”列描述如何对操作进行分类(list、read和write等)。此分类可帮助您了解在SCP中相应操作对应的访问级别。 “资源类型”列指每个操作是否支持资源级权限。 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在SCP语句的Resource元素中指定所有资源类型(“*”)。 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。 关于CodeArts控制台定义的资源类型的详细信息请参见资源类型(Resource)。 “条件键”列包括了可以在SCP语句的Condition元素中支持指定的键值。 如果该授权项资源类型列存在值,则表示条件键仅对列举的资源类型生效。 如果该授权项资源类型列没有值(-),则表示条件键对整个授权项生效。 如果此列条件键没有值(-),表示此操作不支持指定条件键。 关于CodeArts控制台定义的条件键的详细信息请参见条件(Condition)。 您可以在SCP语句的Action元素中指定以下CodeArts控制台的相关操作。 表1 CodeArts控制台支持的授权项 授权项 描述 访问级别 资源类型(*为必须) 条件键 codearts:projectman:viewUsage 授予权限以在控制台查询项目管理服务资源用量。 read - - codearts:codehub:viewUsage 授予权限以在控制台查询 代码托管服务 资源用量。 read - - codearts:cloudbuild:viewUsage 授予权限以在控制台查询编译构建服务资源用量。 read - - codearts:codecheck:viewUsage 授予权限以在控制台查询代码检查服务资源用量。 read - - codearts:cloudtest:viewUsage 授予权限以在控制台查询云测-测试管理服务资源用量。 read - - codearts:apitest:viewUsage 授予权限以在控制台查询云测-接口测试服务资源用量。 read - - codearts:cloudrelease:viewUsage 授予权限以在控制台查询发布服务资源用量。 read - - codearts:cloudide:viewUsage 授予权限以在控制台查询CloudIDE服务资源用量。 read - - codearts:classroom:viewUsage 授予权限以在控制台查询Classroom服务资源用量。 read - - codearts:monthlyPackage:changeSpecification 授予权限以在控制台变更软件开发平台套餐规格。 write - - codearts:monthlyPackage:subscribe 授予权限以在控制台订购软件开发平台套餐。 write - - codearts:projectman:subscribeService 授予权限以在控制台开通按需项目管理服务。 write - - codearts:codehub:subscribeService 授予权限以在控制台开通按需代码托管服务。 write - - codearts:cloudbuild:subscribeService 授予权限以在控制台开通按需编译构建服务。 write - - codearts:codecheck:subscribeService 授予权限以在控制台开通按需代码检查服务。 write - - codearts:cloudtest:subscribeService 授予权限以在控制台开通按需云测-测试管理服务。 write - - codearts:apitest:subscribeService 授予权限以在控制台开通按需云测-接口测试服务。 write - - codearts:cloudrelease:subscribeService 授予权限以在控制台开通按需发布服务。 write - - codearts:package:subscribeService 授予权限以在控制台开通按需服务组合。 write - - codearts:cloudide:subscribeService 授予权限以在控制台开通按需CloudIDE服务。 write - - codearts:classroom:subscribeService 授予权限以在控制台开通按需Classroom服务。 write - - codearts:projectman:unsubscribeService 授予权限以在控制台取消开通按需项目管理服务。 write - - codearts:codehub:unsubscribeService 授予权限以在控制台取消开通按需代码托管服务。 write - - codearts:cloudbuild:unsubscribeService 授予权限以在控制台取消开通按需编译构建服务。 write - - codearts:codecheck:unsubscribeService 授予权限以在控制台取消开通按需代码检查服务。 write - - codearts:cloudtest:unsubscribeService 授予权限以在控制台取消开通按需云测-测试管理服务。 write - - codearts:apitest:unsubscribeService 授予权限以在控制台取消开通按需云测-接口测试服务。 write - - codearts:cloudrelease:unsubscribeService 授予权限以在控制台取消开通按需发布服务。 write - - codearts:package:unsubscribeService 授予权限以在控制台取消开通按需服务组合。 write - - codearts:cloudide:unsubscribeService 授予权限以在控制台取消开通按需CloudIDE服务。 write - - codearts:classroom:unsubscribeService 授予权限以在控制台取消开通按需Classroom服务。 write - - codearts:authorization:list 授予权限以在控制台查看租户授权列表。 list - - codearts:payPerUsePackage:listResourceDetail 授予权限以在控制台查看按需套餐包资源详情。 list - - codearts:monthlyPackage:listResourceDetail 授予权限以在控制台查看软件开发平台套餐资源详情。 list - - codearts:projectman:listResourceDetail 授予权限以在控制台查看项目管理资源列表详情。 list - - codearts:codehub:listResourceDetail 授予权限以在控制台查看仓库托管资源列表详情。 list - - codearts:cloudbuild:listResourceDetail 授予权限以在控制台查看构建资源列表详情。 list - - codearts:codecheck:listResourceDetail 授予权限以在控制台查看代码检查资源列表详情。 list - - codearts:cloudtest:listResourceDetail 授予权限以在控制台查看云测-测试管理资源列表详情。 list - - codearts:cloudrelease:listResourceDetail 授予权限以在控制台查看发布资源列表详情。 list - - codearts:cloudide:listResourceDetail 授予权限以在控制台查看CloudIDE资源列表详情。 list - - codearts:classroom:listResourceDetail 授予权限以在控制台查看Classroom资源列表详情。 list - - codearts:agileDevopsTrainingServices:listResourceDetail 授予权限以在控制台查看敏捷与DevOps培训服务资源列表详情。 list - - codearts:projectman:listSubscriptionHistory 授予权限以在控制台查看项目管理服务开通记录。 list - - codearts:codehub:listSubscriptionHistory 授予权限以在控制台查看代码托管服务开通记录。 list - - codearts:cloudbuild:listSubscriptionHistory 授予权限以在控制台查看编译构建服务开通记录。 list - - codearts:codecheck:listSubscriptionHistory 授予权限以在控制台查看代码检查服务开通记录。 list - - codearts:cloudtest:listSubscriptionHistory 授予权限以在控制台查看云测-测试管理服务开通记录。 list - - codearts:apitest:listSubscriptionHistory 授予权限以在控制台查看云测-接口测试服务开通记录。 list - - codearts:cloudrelease:listSubscriptionHistory 授予权限以在控制台查看发布服务开通记录。 list - - codearts:package:listSubscriptionHistory 授予权限以在控制台查看按需服务组合开通记录。 list - - codearts:cloudide:listSubscriptionHistory 授予权限以在控制台查看CloudIDE服务开通记录。 list - - codearts:classroom:listSubscriptionHistory 授予权限以在控制台查看Classroom服务开通记录。 list - - codearts:authorization:create 授予权限以在控制台新增企业账户授权。 permissions - - codearts:authorization:cancel 授予权限以在控制台取消企业账户授权。 permissions - - codearts:authorization:update 授予权限以在控制台同意或拒绝企业账户授权。 permissions - -
  • 操作(Action) 操作(Action)即为SCP中支持的操作项。 “访问级别”列描述如何对操作进行分类(list、read和write等)。此分类可帮助您了解在SCP中相应操作对应的访问级别。 “资源类型”列指每个操作是否支持资源级权限。 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在SCP语句的Resource元素中指定所有资源类型(“*”)。 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。 关于CodeartsPipeline定义的资源类型的详细信息请参见资源类型(Resource)。 “条件键”列包括了可以在SCP语句的Condition元素中支持指定的键值。 如果该操作项资源类型列存在值,则表示条件键仅对列举的资源类型生效。 如果该操作项资源类型列没有值(-),则表示条件键对整个操作项生效。 如果此列没有值(-),表示此操作不支持指定条件键。 关于CodeartsPipeline定义的条件键的详细信息请参见条件(Condition)。 您可以在自定义SCP语句的Action元素中指定以下CodeartsPipeline的相关操作。 表1 CodeartsPipeline支持的操作项 操作项 描述 访问级别 资源类型(*为必须) 条件键 codeartspipeline:pipelinetemplate:create 授予权限以创建流水线模板。 write - - codeartspipeline:pipelinetemplate:update 授予权限以更新流水线模板。 write - - codeartspipeline:pipelinetemplate:delete 授予权限以删除流水线模板。 write - - codeartspipeline:pipelinetemplate:get 授予权限以查看流水线模板。 read - - codeartspipeline:pipelinetemplate:list 授予权限以查看流水线模板列表。 list - - codeartspipeline:rule:create 授予权限以创建规则。 write - - codeartspipeline:rule:update 授予权限以更新规则。 write - - codeartspipeline:rule:delete 授予权限以删除规则。 write - - codeartspipeline:rule:get 授予权限以查看规则。 read - - codeartspipeline:rule:list 授予权限以查看规则列表。 list - - codeartspipeline:strategy:create 授予权限以创建策略。 write - - codeartspipeline:strategy:update 授予权限以更新策略。 write - - codeartspipeline:strategy:delete 授予权限以删除策略。 write - - codeartspipeline:strategy:get 授予权限以查看策略。 read - - codeartspipeline:strategy:list 授予权限以查看策略列表。 list - - codeartspipeline:extension:create 授予权限以创建插件。 write - - codeartspipeline:extension:update 授予权限以更新插件。 write - - codeartspipeline:extension:delete 授予权限以删除插件。 write - - codeartspipeline:extension:get 授予权限以查看插件。 read - - codeartspipeline:extension:list 授予权限以查看插件列表。 list - - CodeartsPipeline的API通常对应着一个或多个操作项。表2展示了API与操作项的关系,以及该API需要依赖的操作项。 表2 API与操作项的关系 API 对应的操作项 依赖的操作项 POST /v5/{tenant_id}/api/pipeline-templates codeartspipeline:pipelinetemplate:create - PUT /v5/{tenant_id}/api/pipeline-templates/{template_id} codeartspipeline:pipelinetemplate:update - DELETE /v5/{tenant_id}/api/pipeline-templates/{template_id} codeartspipeline:pipelinetemplate:delete - GET /v5/{tenant_id}/api/pipeline-templates/{template_id} codeartspipeline:pipelinetemplate:get - POST /v5/{tenant_id}/api/pipeline-templates/list codeartspipeline:pipelinetemplate:list - POST /v2/{domain_id}/rules/create codeartspipeline:rule:create - PUT /v2/{domain_id}/rules/{rule_id}/update codeartspipeline:rule:update - DELETE /v2/{domain_id}/rules/{rule_id}/delete codeartspipeline:rule:delete - GET /v2/{domain_id}/rules/{rule_id}/detail codeartspipeline:rule:get - GET /v2/{domain_id}/rules/query codeartspipeline:rule:list - POST /v2/{domain_id}/tenant/rule-sets/create codeartspipeline:strategy:create - PUT /v2/{domain_id}/tenant/rule-sets/{rule_set_id}/update codeartspipeline:strategy:update - DELETE /v2/{domain_id}/tenant/rule-sets/{rule_set_id}/delete codeartspipeline:strategy:delete - GET /v2/{domain_id}/tenant/rule-sets/{rule_set_id}/detail codeartspipeline:strategy:get - GET /v2/{project_id}/rule-sets/{rule_set_id}/gray/detail codeartspipeline:strategy:get - GET /v2/{domain_id}/tenant/rule-sets/query codeartspipeline:strategy:list - GET /v2/{project_id}/rule-sets/query codeartspipeline:strategy:list - PUT /v2/{domain_id}/tenant/rule-sets/{rule_set_id}/switch codeartspipeline:strategy:update - POST /v1/{domain_id}/agent-plugin/create codeartspipeline:extension:create - POST /v1/{domain_id}/agent-plugin/create-draft codeartspipeline:extension:create - POST /v1/{domain_id}/publisher/create codeartspipeline:extension:create - POST /v1/{domain_id}/agent-plugin/edit-draft codeartspipeline:extension:update - POST /v1/{domain_id}/agent-plugin/publish-draft codeartspipeline:extension:update - POST /v1/{domain_id}/agent-plugin/update-info codeartspipeline:extension:update - POST /v1/{domain_id}/agent-plugin/publish-plugin-bind codeartspipeline:extension:update - POST /v1/{domain_id}/agent-plugin/publish-plugin codeartspipeline:extension:update - POST /v1/{domain_id}/common/upload-plugin-icon codeartspipeline:extension:update - POST /v1/{domain_id}/common/upload-publisher-icon codeartspipeline:extension:update - DELETE /v1/{domain_id}/agent-plugin/delete-draft codeartspipeline:extension:delete - GET /v1/{domain_id}/publisher/query-all codeartspipeline:extension:list - GET /v1/{domain_id}/publisher/optional-publisher codeartspipeline:extension:list - POST /v1/{domain_id}/relation/stage-plugins codeartspipeline:extension:list - GET /v1/{domain_id}/relation/plugin/single codeartspipeline:extension:list - POST /v1/{domain_id}/agent-plugin/query-all codeartspipeline:extension:list - POST /v1/{domain_id}/agent-plugin/plugin-metrics codeartspipeline:extension:get - POST /v1/{domain_id}/agent-plugin/plugin-input codeartspipeline:extension:get - POST /v1/{domain_id}/agent-plugin/plugin-output codeartspipeline:extension:get - GET /v1/{domain_id}/agent-plugin/query codeartspipeline:extension:list - GET /v1/{domain_id}/agent-plugin/detail codeartspipeline:extension:get - GET /v1/{domain_id}/agent-plugin/all-version codeartspipeline:extension:list - DELETE /v1/{domain_id}/publisher/delete codeartspipeline:extension:delete - POST /v1/{domain_id}/publisher/detail codeartspipeline:extension:get - POST /v3/{domain_id}/extension/info/add codeartspipeline:extension:create - POST /v3/{domain_id}/extension/info/update codeartspipeline:extension:update - DELETE /v3/{domain_id}/extension/info/delete codeartspipeline:extension:delete - POST /v3/{domain_id}/extension/upload codeartspipeline:extension:update - GET /v3/{domain_id}/extension/detail codeartspipeline:extension:get - POST /v1/{domain_id}/relation/plugins codeartspipeline:extension:list -
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Security-Token 否 String 如果正在使用临时安全凭据,则此header是必需的,该值是临时安全凭据的安全令牌(会话令牌)。 最小值:1 表3 请求Body参数 参数 是否必选 参数类型 描述 tags 是 Array of TagDto objects 要添加到指定资源的标签列表。 数组长度:1 - 20 表4 TagDto 参数 是否必选 参数类型 描述 key 是 String 标签键的密钥标识符或名称。 最小长度:1 最大长度:128 value 是 String 与标签键关联的字符串值。您可以将标签的值设置为空字符串,但不能将标签的值设置为NULL。 最小长度:0 最大长度:255
  • URI POST /v1/organizations/{resource_type}/{resource_id}/tags/delete 表1 路径参数 参数 是否必选 参数类型 描述 resource_type 是 String 资源类型。枚举值:organizations:policies(服务策略)、organizations:ous(组织OU)、organizations:accounts(账号信息) 、organizations:roots:(根)。 枚举值: organizations:policies organizations:ous organizations:accounts organizations:roots resource_id 是 String 根、组织单元、账号或策略的唯一标识符(ID)。 最大长度:130
  • 响应示例 状态码: 200 Successful. { "handshake" : { "id" : "h-awjp43m7bz3b8jgy5v61jrfwakt3og8w", "urn" : "organizations::0a6d25d23900d45c0faac010e0fb4de0:handshake:o-fhkmi6mek7wlqdp6nideqhb47qwtjdsv/h-awjp43m7bz3b8jgy5v61jrfwakt3og8w", "updated_at" : "2022-08-25T08:11:53Z", "created_at" : "2022-08-25T08:11:20Z", "management_account_id" : "0a6d25d23900d45c0faac010e0fb4de0", "management_account_name" : "paas_iam_573331", "organization_id" : "o-fhkmi6mek7wlqdp6nideqhb47qwtjdsv", "notes" : "test-notes", "target" : { "type" : "account", "entity" : "05c734152f00d4200f2bc0179ac6c5e0" }, "status" : "pending" } }
共100000条