企业版
云服务在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的相关操作。
授权项 | 描述 | 访问级别 | 资源类型(*为必须) | 条件键 | 别名 |
|---|---|---|---|---|---|
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:repository:listNamespaces | 授予查询命名空间(组织)列表的权限。 | List | repository * | - | |
swr:repository:getNamespace | 授予查询命名空间(组织)详情的权限。 | Read | repository * | - | |
swr:repository:updateNamespace | 授予修改命名空间(组织)的权限。 | Write | repository * | - | |
- | - | ||||
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:repository:listCatalog | 授予查询Catalog列表的权限。 | List | repository * | - | |
swr:instance:listAllArtifacts | 授予查询仓库实例的所有制品版本列表的权限。 | List | instance * | - | |
swr:repository:startManualScanning | 授予手动启动制品扫描的权限。 | Write | repository * | - |
SWR的API通常对应着一个或多个授权项。表2展示了API与授权项的关系,以及该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 | - |
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 | - |
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 | - |
POST /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}/artifacts/{reference}/scan | swr:repository:startManualScanning | - |
GET /v2/{project_id}/instances/{instance_id}/namespaces/{namespace_name}/repositories/{repository_name}/artifacts/{reference}/vulnerabilities | swr:repository:listArtifactVulnerabilities | - |
资源类型(Resource)
资源类型(Resource)表示身份策略所作用的资源。如表3中的某些操作指定了可以在该操作指定的资源类型,则必须在具有该操作的身份策略语句中指定该资源的URN,身份策略仅作用于此资源;如未指定,Resource默认为“*”,则身份策略将应用到所有资源。您也可以在身份策略中设置条件,从而指定资源类型。
SWR定义了以下可以在自定义身份策略的Resource元素中使用的资源类型。
条件(Condition)
条件键概述
条件(Condition)是身份策略生效的特定条件,包括条件键和运算符。
- 条件键表示身份策略语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。
- 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,系统将自动获取并鉴权。详情请参见:全局条件键。
- 服务级条件键(前缀通常为服务缩写,如swr:)仅适用于对应服务的操作,详情请参见表4。
- 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。
- 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,身份策略才能生效。支持的运算符请参见:运算符。
SWR支持的服务级条件键
SWR定义了以下可以在自定义身份策略的Condition元素中使用的条件键,您可以使用这些条件键进一步细化身份策略语句应用的条件。
服务级条件键 | 类型 | 单值/多值 | 说明 |
|---|---|---|---|
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 | 单值 | 根据镜像是否为公开镜像进行权限控制。 |

