更新时间:2025-11-03 GMT+08:00
分享

身份策略授权参考

云服务在IAM预置了常用授权项,称为系统身份策略。如果IAM系统身份策略无法满足授权要求,管理员可以根据各服务支持的授权项,创建IAM自定义身份策略来进行精细的访问控制,IAM自定义身份策略是对系统身份策略的扩展和补充。

除IAM服务外,Organizations服务中的服务控制策略(Service Control Policy,以下简称SCP)也可以使用这些授权项元素设置访问控制策略。

SCP不直接进行授权,只划定权限边界。将SCP绑定到组织单元或者成员账号时,并没有直接对组织单元或成员账号授予操作权限,而是规定了成员账号或组织单元包含的成员账号的授权范围。IAM身份策略授予权限的有效性受SCP限制,只有在SCP允许范围内的权限才能生效。

IAM服务与Organizations服务在使用这些元素进行访问控制时,存在着一些区别,详情请参见:IAM服务与Organizations服务权限访问控制的区别

本章节介绍IAM服务身份策略授权场景中自定义身份策略和组织服务中SCP使用的元素,这些元素包含了操作(Action)、资源(Resource)和条件(Condition)。

操作(Action)

操作(Action)即为身份策略中支持的授权项。

  • “访问级别”列描述如何对操作进行分类(List、Read和Write等)。此分类可帮助您了解在身份策略中相应操作对应的访问级别。
  • “资源类型”列指每个操作是否支持资源级权限。
    • 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在身份策略语句的Resource元素中指定所有资源类型(“*”)。
    • 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。
    • 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。

    关于SWR定义的资源类型的详细信息请参见资源类型(Resource)

  • “条件键”列包括了可以在身份策略语句的Condition元素中支持指定的键值。
    • 如果该授权项资源类型列存在值,则表示条件键仅对列举的资源类型生效。
    • 如果该授权项资源类型列没有值(-),则表示条件键对整个授权项生效。
    • 如果此列条件键没有值(-),表示此操作不支持指定条件键。

    关于SWR定义的条件键的详细信息请参见条件(Condition)

  • “别名”列包括了可以在身份策略中配置的策略授权项。通过这些授权项,可以控制支持策略授权的API访问。详细信息请参见身份策略兼容性说明

您可以在身份策略语句的Action元素中指定以下SWR的相关操作。

表1 SWR支持的授权项

授权项

描述

访问级别

资源类型(*为必须)

条件键

别名

swr:repository:createImmutableRule

授予创建企业仓库镜像不可变规则的权限。

Write

repository *

-

swr:repository:deleteImmutableRule

授予删除企业仓库镜像不可变规则的权限。

Write

repository *

-

swr:repository:listImmutableRules

授予企业仓库获取镜像不可变规则列表的权限。

List

repository *

-

swr:repository:updateImmutableRule

授予企业仓库修改镜像不可变规则的权限。

Write

repository *

-

swr:repository:listArtifacts

授予查询制品列表的权限。

List

repository *

-

swr:repository:getArtifact

授予查询制品详情的权限。

Read

repository *

-

swr:repository:deleteArtifact

授予删除制品的权限。

Write

repository *

-

swr:repository:listAccessories

授予查询制品附件列表的权限。

List

repository *

-

swr:repository:getArtifactAddition

授予查询制品附加信息的权限。

Read

repository *

-

swr:instance:getConfigurations

授予查询企业版实例配置的权限。

Read

instance *

-

swr:instance:updateConfigurations

授予更新企业版实例配置的权限。

Write

instance *

-

swr:instance:listResourceInstances

授予授予查询资源实例列表的权限。

List

instance *

-

-

-

swr:instance:getResourceInstancesCount

授予授予查询资源实例数量的权限。

Read

instance *

-

-

-

swr:instance:createResourceTags

授予批量创建资源标签的权限。

Tagging

instance *

-

-

swr:instance:deleteResourceTags

授予批量删除资源标签的权限。

Tagging

instance *

-

-

swr:instance:getProjectTags

授予查询项目标签的权限。

Read

-

-

-

swr:instance:getResourceTags

授予查询资源标签的权限。

Read

instance *

-

swr:instance:create

授予创建企业版实例的权限。

Write

instance *

-

-

-

swr:instance:list

授予查询企业版实例列表信息的权限。

List

instance *

-

-

swr:instance:get

授予查询企业版实例信息的权限。

Read

instance *

-

swr:instance:delete

授予删除企业版实例的权限。

Write

instance *

-

swr:instance:getAuditLogs

授予查询企业版实例审计日志的权限。

Read

instance *

-

swr:instance:getStatistics

授予查询企业版实例统计信息的权限。

Read

instance *

-

swr:instance:listJobs

授予查询任务列表的权限。

List

instance *

-

-

swr:instance:getJobs

授予查询任务详情的权限。

Read

instance *

-

-

swr:instance:deleteJob

授予删除任务的权限。

Write

instance *

-

-

swr:repository:createNamespace

授予创建命名空间(组织)的权限。

Write

repository *

-

-

swr:EnablePublicNameSpace

swr:repository:listNamespaces

授予查询命名空间(组织)列表的权限。

List

repository *

-

swr:repository:getNamespace

授予查询命名空间(组织)详情的权限。

Read

repository *

-

swr:repository:updateNamespace

授予修改命名空间(组织)的权限。

Write

repository *

-

-

swr:EnablePublicNameSpace

swr:repository:deleteNamespace

授予删除命名空间(组织)的权限。

Write

repository *

-

swr:repository:listRepositories

授予获取制品仓库列表的权限。

List

repository *

-

swr:repository:getRepository

授予获取制品仓库详情的权限。

Read

repository *

-

swr:repository:updateRepository

授予修改制品仓库配置的权限。

Write

repository *

-

swr:repository:deleteRepository

授予删除制品仓库的权限。

Write

repository *

-

swr:repository:listTags

授予查询制品版本列表的权限。

List

repository *

-

swr:repository:getTag

授予查询制品版本详情的权限。

Read

repository *

-

swr:repository:deleteTag

授予删除制品版本的权限。

Write

repository *

-

swr:repository:getTagAddition

授予查询制品版本附加信息的权限。

Read

repository *

-

swr:repository:createRetentionPolicy

授予创建版本清理策略的权限。

Write

repository *

-

swr:repository:listRetentionPolicies

授予查询版本清理策略列表的权限。

List

repository *

-

swr:repository:getRetentionPolicy

授予查询版本清理策略详情的权限。

Read

repository *

-

swr:repository:updateRetentionPolicy

授予修改版本清理策略配置的权限。

Write

repository *

-

swr:repository:deleteRetentionPolicy

授予删除版本清理策略的权限。

Write

repository *

-

swr:repository:executeRetentionPolicy

授予应用版本清理策略的权限。

Write

repository *

-

swr:repository:listRetentionPolicyExecutions

授予获取版本清理执行记录列表的权限。

List

repository *

-

swr:repository:listRetentionPolicyExecTasks

授予获取版本清理任务列表的权限。

List

repository *

-

swr:repository:listRetentionPolicyExecSubTasks

授予获取版本清理子任务列表的权限。

List

repository *

-

swr:repository:createWebhook

授予创建触发器的权限。

Write

repository *

-

swr:repository:listWebhooks

授予查询触发器列表的权限。

List

repository *

-

swr:repository:getWebhook

授予查询触发器详情的权限。

Read

repository *

-

swr:repository:updateWebhook

授予修改触发器配置的权限。

Write

repository *

-

swr:repository:deleteWebhook

授予删除触发器的权限。

Write

repository *

-

swr:repository:listWebhookJobs

授予获取触发器执行记录列表的权限。

List

repository *

-

swr:instance:createRegistry

授予创建目标仓库的权限。

Write

instance *

-

swr:instance:listRegistries

授予获取目标仓库列表的权限。

List

instance *

-

swr:instance:getRegistry

授予获取目标仓库详情的权限。

Read

instance *

-

swr:instance:updateRegistry

授予修改目标仓库配置的权限。

Write

instance *

-

swr:instance:deleteRegistry

授予删除目标仓库的权限。

Write

instance *

-

swr:instance:createReplicationPolicy

授予创建复制策略的权限。

Write

instance *

-

swr:instance:listReplicationPolicies

授予查询复制策略列表的权限。

List

instance *

-

swr:instance:getReplicationPolicy

授予查询复制策略详情的权限。

Read

instance *

-

swr:instance:updateReplicationPolicy

授予修改复制策略的权限。

Write

instance *

-

swr:instance:deleteReplicationPolicy

授予删除复制策略的权限。

Write

instance *

-

swr:instance:executeReplicationPolicy

授予应用复制策略的权限。

Write

instance *

-

swr:instance:stopReplicationPolicyExecution

授予停止复制任务的权限。

Write

instance *

-

swr:instance:listReplicationPolicyExecutions

授予查询复制记录列表的权限。

List

instance *

-

swr:instance:listReplicationPolicyExecTasks

授予查询复制任务列表的权限。

List

instance *

-

swr:instance:listReplicationPolicyExecSubTasks

授予查询复制子任务列表的权限。

List

instance *

-

swr:repository:createSignPolicy

授予创建签名策略的权限。

Write

repository *

-

swr:repository:listSignPolicies

授予查询签名策略列表的权限。

List

repository *

-

swr:repository:getSignPolicy

授予查询签名策略详情的权限。

Read

repository *

-

swr:repository:updateSignPolicy

授予修改签名策略的权限。

Write

repository *

-

swr:repository:deleteSignPolicy

授予删除签名策略的权限。

Write

repository *

-

swr:repository:executeSignPolicy

授予执行签名策略的权限。

Write

repository *

-

swr:repository:listSignPolicyExecutions

授予查询签名执行记录列表的权限。

List

repository *

-

swr:repository:listSignPolicyExecTasks

授予查询签名任务列表的权限。

List

repository *

-

swr:repository:listSignPolicyExecSubTasks

授予查询签名策略执行记录子任务列表的权限。

List

repository *

-

swr:instance:updateEndpointPolicy

授予更新公网访问白名单配置的权限。

Write

instance *

-

swr:instance:updateEndpointPolicyStatus

授予更新公网访问白名单配置状态的权限。

Write

instance *

-

swr:instance:getEndpointPolicy

授予查询公网访问白名单配置的权限。

Read

instance *

-

swr:instance:createInternalEndpoint

授予创建内网访问的权限。

Write

instance *

-

-

swr:instance:getInternalEndpoint

授予获取内网访问的权限。

Read

instance *

-

swr:instance:deleteInternalEndpoint

授予删除内网访问的权限。

Write

instance *

-

swr:instance:listInternalEndpoints

授予查询内网访问列表的权限。

List

instance *

-

swr:repository:uploadArtifact

授予上传制品的权限。

Write

repository *

-

swr:repository:downloadArtifact

授予下载制品的权限。

Read

repository *

-

swr:instance:createTempCredential

授予创建临时访问凭证的权限。

Write

instance *

-

swr:instance:createLTCredential

授予创建长期访问凭证的权限。

Write

instance *

-

swr:instance:updateLTCredential

授予启用/停用长期访问凭证的权限。

Write

instance *

-

swr:instance:listLTCredentials

授予查询长期访问凭证列表的权限。

List

instance *

-

swr:instance:deleteLTCredential

授予删除长期访问凭证的权限。

Write

instance *

-

swr:instance:addDomainName

授予增加域名的权限。

Write

instance *

-

swr:instance:deleteDomainName

授予删除域名的权限。

Write

instance *

-

swr:instance:updateDomainName

授予更新域名的权限。

Write

instance *

-

swr:instance:listDomainNames

授予查询域名列表的权限。

List

instance *

-

swr:instance:listAllArtifacts

授予查询仓库实例的所有制品版本列表的权限。

List

instance *

-

SWR的API通常对应着一个或多个授权项。表2展示了API与授权项的关系,以及该API需要依赖的授权项。

表2 API与授权项的关系

API

对应的授权项

依赖的授权项

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}/artifacts

swr:repository:listArtifacts

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}/artifacts/{reference}

swr:repository:getArtifact

-

DELETE /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}/artifacts/{reference}

swr:repository:deleteArtifact

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}/artifacts/{reference}/accessories

swr:repository:listAccessories

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}/artifacts/{reference}/additions/{addition}

swr:repository:getArtifactAddition

-

GET /v2/{project_id}/instances/{instance_id}/configurations

swr:instance:getConfigurations

-

PUT /v2/{project_id}/instances/{instance_id}/configurations

swr:instance:updateConfigurations

-

POST /v2/{project_id}/{resource_type}/resource-instances/filter

swr:instance:listResourceInstances

-

POST /v2/{project_id}/{resource_type}/resource-instances/count

swr:instance:getResourceInstancesCount

-

POST /v2/{project_id}/{resource_type}/{resource_id}/tags/create

swr:instance:createResourceTags

-

DELETE /v2/{project_id}/{resource_type}/{resource_id}/tags/delete

swr:instance:deleteResourceTags

-

GET /v2/{project_id}/instances/tags

swr:instance:getProjectTags

-

GET /v2/{project_id}/{resource_type}/{resource_id}/tags

swr:instance:getResourceTags

-

POST /v2/{project_id}/instances

swr:instance:create

-

GET /v2/{project_id}/instances

swr:instance:list

-

GET /v2/{project_id}/instances/{instance_id}

swr:instance:get

-

DELETE /v2/{project_id}/instances/{instance_id}

swr:instance:delete

-

GET /v2/{project_id}/instances/{instance_id}/audit-logs

swr:instance:getAuditLogs

-

GET /v2/{project_id}/instances/{instance_id}/statistics

swr:instance:getStatistics

-

GET /v2/{project_id}/jobs

swr:instance:listJobs

-

-

swr:instance:getJobs

-

DELETE /v2/{project_id}/jobs/{job_id}

swr:instance:deleteJob

-

POST /v2/{project_id}/instances/{instance_id}/namespaces

swr:repository:createNamespace

-

GET /v2/{project_id}/instances/{instance_id}/namespaces

swr:repository:listNamespaces

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}

swr:repository:getNamespace

-

PUT /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}

swr:repository:updateNamespace

-

DELETE /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}

swr:repository:deleteNamespace

-

GET /v2/{project_id}/instances/{instance_id}/repositories

swr:repository:listRepositories

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}

swr:repository:getRepository

-

PUT /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}

swr:repository:updateRepository

-

DELETE /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}

swr:repository:deleteRepository

-

GET /v2/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}/tags

swr:repository:listTags

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}/artifacts/{reference}/additions/{addition}

swr:repository:getTagAddition

-

POST /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/retention/policies

swr:repository:createRetentionPolicy

-

GET /v2/{project_id}/instances/{instance_id}/retention/policies

swr:repository:listRetentionPolicies

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/retention/policies/{policy_id}

swr:repository:getRetentionPolicy

-

PUT /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/retention/policies/{policy_id}

swr:repository:updateRetentionPolicy

-

DELETE /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/retention/policies/{policy_id}

swr:repository:deleteRetentionPolicy

-

POST /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/retention/policies/{policy_id}/executions

swr:repository:executeRetentionPolicy

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/retention/policies/{policy_id}/executions

swr:repository:listRetentionPolicyExecutions

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/retention/policies/{policy_id}/executions/{execution_id}/tasks

swr:repository:listRetentionPolicyExecTasks

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/retention/policies/{policy_id}/executions/{execution_id}/tasks/{task_id}/subtasks

swr:repository:listRetentionPolicyExecSubTasks

-

POST /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/webhook/policies

swr:repository:createWebhook

-

GET /v2/{project_id}/instances/{instance_id}/webhook/policies

swr:repository:listWebhooks

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/webhook/policies/{policy_id}

swr:repository:getWebhook

-

PUT /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/webhook/policies/{policy_id}

swr:repository:updateWebhook

-

DELETE /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/webhook/policies/{policy_id}

swr:repository:deleteWebhook

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/webhook/policies/{policy_id}/jobs

swr:repository:listWebhookJobs

-

POST /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/immutabletagrules

swr:repository:createImmutableRule

-

DELETE /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/immutabletagrules/{immutable_rule_id}

swr:repository:deleteImmutableRule

-

GET /v2/{project_id}/instances/{instance_id}/immutabletagrules

swr:repository:listImmutableRules

-

PUT /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/immutabletagrules/{immutable_rule_id}

swr:repository:updateImmutableRule

-

POST /v2/{project_id}/instances/{instance_id}/registries

swr:instance:createRegistry

-

GET /v2/{project_id}/instances/{instance_id}/registries

swr:instance:listRegistries

-

GET /v2/{project_id}/instances/{instance_id}/registries/{registry_id}

swr:instance:getRegistry

-

PUT /v2/{project_id}/instances/{instance_id}/registries/{registry_id}

swr:instance:updateRegistry

-

DELETE /v2/{project_id}/instances/{instance_id}/registries/{registry_id}

swr:instance:deleteRegistry

-

POST /v2/{project_id}/instances/{instance_id}/replication/policies

swr:instance:createReplicationPolicy

-

GET /v2/{project_id}/instances/{instance_id}/replication/policies

swr:instance:listReplicationPolicies

-

GET /v2/{project_id}/instances/{instance_id}/replication/policies/{policy_id}

swr:instance:getReplicationPolicy

-

PUT /v2/{project_id}/instances/{instance_id}/replication/policies/{policy_id}

swr:instance:updateReplicationPolicy

-

DELETE /v2/{project_id}/instances/{instance_id}/replication/policies/{policy_id}

swr:instance:deleteReplicationPolicy

-

POST /v2/{project_id}/instances/{instance_id}/replication/executions

swr:instance:executeReplicationPolicy

-

PUT /v2/{project_id}/instances/{instance_id}/replication/executions/{execution_id}

swr:instance:stopReplicationPolicyExecution

-

GET /v2/{project_id}/instances/{instance_id}/replication/executions

swr:instance:listReplicationPolicyExecutions

-

GET /v2/{project_id}/instances/{instance_id}/replication/executions/{execution_id}/tasks

swr:instance:listReplicationPolicyExecTasks

-

GET /v2/{project_id}/instances/{instance_id}/replication/executions/{execution_id}/tasks/{task_id}/subtasks

swr:instance:listReplicationPolicyExecSubTasks

-

POST /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/signature/policies

swr:repository:createSignPolicy

-

GET /v2/{project_id}/instances/{instance_id}/signature/policies

swr:repository:listSignPolicies

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/signature/policies/{policy_id}

swr:repository:getSignPolicy

-

PUT /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/signature/policies/{policy_id}

swr:repository:updateSignPolicy

-

DELETE /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/signature/policies/{policy_id}

swr:repository:deleteSignPolicy

-

POST /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/signature/policies/{policy_id}/executions

swr:repository:executeSignPolicy

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/signature/policies/{policy_id}/executions

swr:repository:listSignPolicyExecutions

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/signature/policies/{policy_id}/executions/{execution_id}/tasks

swr:repository:listSignPolicyExecTasks

-

GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/signature/policies/{policy_id}/executions/{execution_id}/tasks/{task_id}/subtasks

swr:repository:listSignPolicyExecSubTasks

-

PUT /v2/{project_id}/instances/{instance_id}/endpoint-policy

swr:instance:updateEndpointPolicy

-

POST /v2/{project_id}/instances/{instance_id}/endpoint-policy

swr:instance:updateEndpointPolicyStatus

-

GET /v2/{project_id}/instances/{instance_id}/endpoint-policy

swr:instance:getEndpointPolicy

-

POST /v2/{project_id}/instances/{instance_id}/internal-endpoints

swr:instance:createInternalEndpoint

-

GET /v2/{project_id}/instances/{instance_id}/internal-endpoints/{internal_endpoints_id}

swr:instance:getInternalEndpoint

-

DELETE /v2/{project_id}/instances/{instance_id}/internal-endpoints/{internal_endpoints_id}

swr:instance:deleteInternalEndpoint

-

GET /v2/{project_id}/instances/{instance_id}/internal-endpoints

swr:instance:listInternalEndpoints

-

-

swr:repository:uploadArtifact

-

-

swr:repository:downloadArtifact

-

POST /v2/{project_id}/instances/{instance_id}/temp-credential

swr:instance:createTempCredential

-

POST /v2/{project_id}/instances/{instance_id}/long-term-credential

swr:instance:createLTCredential

-

PUT /v2/{project_id}/instances/{instance_id}/long-term-credentials/{credential_id}

swr:instance:updateLTCredential

-

GET /v2/{project_id}/instances/{instance_id}/long-term-credentials

swr:instance:listLTCredentials

-

DELETE /v2/{project_id}/instances/{instance_id}/long-term-credentials/{credential_id}

swr:instance:deleteLTCredential

-

POST /v2/{project_id}/instances/{instance_id}/domainname

swr:instance:addDomainName

scm:cert:export

DELETE /v2/{project_id}/instances/{instance_id}/domainname/{domainname_id}

swr:instance:deleteDomainName

-

PUT /v2/{project_id}/instances/{instance_id}/domainname/{domainname_id}

swr:instance:updateDomainName

-

GET /v2/{project_id}/instances/{instance_id}/domainname

swr:instance:listDomainNames

-

GET /v2/{project_id}/instances/{instance_id}/artifacts

swr:instance:listAllArtifacts

-

资源类型(Resource)

资源类型(Resource)表示身份策略所作用的资源。如表3中的某些操作指定了可以在该操作指定的资源类型,则必须在具有该操作的身份策略语句中指定该资源的URN,身份策略仅作用于此资源;如未指定,Resource默认为“*”,则身份策略将应用到所有资源。您也可以在身份策略中设置条件,从而指定资源类型。

SWR定义了以下可以在自定义身份策略的Resource元素中使用的资源类型。

表3 SWR支持的资源类型

资源类型

URN

repository

swr:<region>:<account-id>:repository:<instance-name>/<repository-path>

instance

swr:<region>:<account-id>:instance:<instance-name>

条件(Condition)

条件键概述

条件(Condition)是身份策略生效的特定条件,包括条件键运算符

  • 条件键表示身份策略语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。
    • 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。
    • 服务级条件键(前缀通常为服务缩写,如swr:)仅适用于对应服务的操作,详情请参见表4
    • 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。
  • 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,身份策略才能生效。

SWR支持的服务级条件键

SWR定义了以下可以在自定义身份策略的Condition元素中使用的条件键,您可以使用这些条件键进一步细化身份策略语句应用的条件。

表4 SWR支持的服务级条件键

服务级条件键

类型

单值/多值

说明

swr:VpcId

string

单值

按照用户VPC ID进行权限控制。

swr:SubnetId

string

单值

按照用户Subnet ID进行权限控制。

swr:EnablePublicNameSpace

boolean

单值

限制企业仓库是否允许创公开组织。

swr:EnableObsEncrypt

boolean

单值

限制企业版实例是否必须使用加密桶。

swr:TargetRegion

string

单值

根据目标区域进行权限控制。

swr:SourceRegion

string

单值

根据源区域进行权限控制。

swr:TargetUrls

string

多值

根据目标URL地址进行权限控制。

swr:SourceUrls

string

多值

根据源URL地址进行权限控制。

swr:RepositoryIsPublic

boolean

单值

根据镜像是否为公开镜像进行权限控制。

相关文档