自定义委托授权
操作场景
在使用SWR企业仓库实例时,需要访问租户的某些资源。只有通过委托授权后,SWR服务才能访问这些资源。委托是IAM提供的一种权限管理方式。
委托是您与其他云服务、华为云账号或者代运维公司创建的一种信任关系。如果您在华为云购买了多种云资源,其中一种云资源希望让更专业、高效的公司、账号或者云服务来代运维,您可以通过IAM的委托功能,与云服务、账号或者代运维公司创建委托关系,实现安全高效的资源代运维工作。被委托的云服务、账号或公司可以根据权限代替您进行资源运维工作。
创建委托授权有两种形式:
- 【推荐】由于容器镜像服务企业版目前处于公测阶段,如果您的租户登录页面后看不到“企业版”链接,请提交工单申请入口。申请成功后,登录容器镜像服务企业版控制台时,弹出授权指引提示框。
此种方式需要登录的用户具有Tenant Administrator的权限。
- 由用户自己创建委托并授权完成。
如果您的账号没有Tenant Administrator的权限,您可以在统一身份认证服务控制台手动创建委托来实现。
通过IAM创建委托
以下是在IAM新版控制台和IAM旧版控制台中,用户自行创建自定义委托并完成授权的操作指南。
- 委托名称不能重复,即如果您在IAM新版控制台创建的的信任委托A,则不能在IAM旧版控制台创建同名的委托A,反之亦然。
- 当使用第二种方式即由用户自己创建委托并授权的场景下,如果使用了IAM新版控制台的委托,则不能再使用IAM旧版控制台的委托,即所有的局点都只能使用IAM新版控制台的委托。而第一种通过SWR控制台弹框授权的方式无此限制,故建议使用第一种方式进行委托的创建并授权。
IAM新版控制台
SWR 服务仅在拉美-圣保罗一局点支持通过 IAM 新版控制台创建的信任委托。
- 登录统一身份认证服务新版控制台。
- 在左侧导航窗格中,选择“身份策略”页签,单击右上方的“创建自定义身份策略”。
- 策略名称填写为“SWR_EE_Policies”。策略配置方式选择“JSON视图”,策略内容复制粘贴如下内容,单击“确定”。
{ "Version": "5.0", "Statement": [ { "Action": [ "vpc:securityGroups:create", "vpc:securityGroups:delete", "vpc:securityGroups:get", "vpc:securityGroupRules:create", "vpc:securityGroupRules:delete", "vpc:ports:create", "vpc:ports:delete", "vpc:ports:update", "vpc:ports:get", "vpc:subnets:get", "vpc:vpcs:get", "vpcep:endpoints:create", "vpcep:endpoints:delete", "vpcep:endpoints:get", "kms:cmk:getMaterial", "kms:cmk:get", "kms:cmk:list", "kms:cmk:scheduleKeyDeletion", "kms:cmk:sign", "kms:cmk:create", "kms:cmk:getPublicKey", "kms:cmk:decryptDataKey", "kms:cmk:createDataKey", "ces:metricData:list" ], "Effect": "Allow" } ] }
- 如果不需要由SWR服务来创建或删除内网访问,可以删除json中的 vpcep:endpoints:create、vpcep:endpoints:delete 两行记录。
- 如果不需要由SWR服务来创建或删除加密的obs桶,可以删除json中的 kms:cmk:create、kms:cmk:scheduleKeyDeletion 两行记录。
- 再创建一条自定义身份策略,策略名称填写为“SWR_EE_OBS_Policies”。策略配置方式选择“JSON视图”,策略内容复制粘贴如下内容,单击“确定”。
{ "Version": "5.0", "Statement": [ { "Effect": "Allow", "Action": [ "obs:bucket:getBucketStorage", "obs:bucket:getEncryptionConfiguration", "obs:bucket:getLifecycleConfiguration", "obs:bucket:headBucket", "obs:bucket:createBucket", "obs:bucket:deleteBucket", "obs:bucket:listBucket", "obs:bucket:listBucketMultipartUploads", "obs:bucket:putEncryptionConfiguration", "obs:bucket:putLifecycleConfiguration", "obs:object:abortMultipartUpload", "obs:object:deleteObject", "obs:object:getObject", "obs:object:listMultipartUploadParts", "obs:object:putObject" ] } ] }
如果不需要由SWR服务创建或删除OBS桶,可以删除json中的 obs:bucket:createBucket、obs:bucket:deleteBucket 两行记录。
- 再创建一条自定义身份策略,策略名称填写为“SWR_EE_IAM_Policies”。策略配置方式选择“JSON视图”,策略内容复制粘贴如下内容,单击“确定”。
{ "Version": "5.0", "Statement": [ { "Effect": "Allow", "Action": [ "iam:users:getUser" ] } ] } - 在左侧导航窗格中,选择“委托”页签,单击“创建信任委托”。
- 在创建信任委托页面,委托名称填写为“swr_ee_trust”,信任主体类型选择“云服务”,云服务选择“容器镜像服务”,最大会话持续时长选择“12小时”,单击“完成”。
- 创建成功后,单击“立即授权”,勾选步骤3和步骤4创建的两条自定义身份策略SWR_EE_Policies和SWR_EE_OBS_Policies,单击“下一步”,选择授权范围,单击“确定”。
- 如需支持制品扫描功能,还需要在SWR_EE_Policies 策略下增加以下权限:
hss:image:batchScanSwrImage hss:image:vulnerabilities hss:image:listVulnerabilityCve hss:image:runImageSynchronizeTask hss:image:listRegistryImages hss:container:listImageScanTask swr:instance:createTempCredential swr:instance:list swr:repository:listRepositories swr:repository:listArtifacts swr:repository:downloadArtifact swr:repository:getTag
授权完成后需等待15-30分钟方可生效,请耐心等待!
IAM旧版控制台
- 登录IAM控制台。
- 在左侧导航窗格中,选择“权限管理>权限”页签,单击右上方的“创建自定义策略”。
- 策略名称填写为“SWR_EE_Policies”,策略名称不能填写其他值。策略配置方式选择“JSON视图”,策略内容复制粘贴如下内容,单击“确定”。
{ "Version": "1.1", "Statement": [ { "Action": [ "vpc:securityGroups:create", "vpc:securityGroups:delete", "vpc:securityGroups:get", "vpc:securityGroupRules:create", "vpc:securityGroupRules:delete", "vpc:ports:create", "vpc:ports:delete", "vpc:ports:update", "vpc:ports:get", "vpc:subnets:get", "vpc:vpcs:get", "vpcep:endpoints:create", "vpcep:endpoints:delete", "vpcep:endpoints:get", "kms:cmk:create", "kms:cmk:update", "kms:cmk:getMaterial", "kms:cmk:get", "kms:cmk:list", "kms:cmk:sign", "kms:cmk:getPublicKey", "kms:dek:create", "kms:dek:decrypt", "kms:dek:encrypt", "ces:metricData:list" ], "Effect": "Allow" } ] } - 再创建一条自定义策略,策略名称填写为“SWR_EE_OBS_Policies”,策略名称不能填写其他值。策略配置方式选择“JSON视图”,策略内容复制粘贴如下内容,单击“确定”。
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:bucket:GetBucketPolicy", "obs:bucket:GetLifecycleConfiguration", "obs:bucket:PutLifecycleConfiguration", "obs:bucket:ListBucketMultipartUploads", "obs:bucket:GetBucketStorage", "obs:object:GetObject", "obs:object:DeleteObject", "obs:bucket:PutBucketPolicy", "obs:object:ListMultipartUploadParts", "obs:bucket:HeadBucket", "obs:bucket:DeleteBucket", "obs:object:AbortMultipartUpload", "obs:bucket:GetEncryptionConfiguration", "obs:bucket:CreateBucket", "obs:bucket:DeleteBucketPolicy", "obs:bucket:ListBucket", "obs:object:PutObject", "obs:bucket:PutEncryptionConfiguration" ] } ] } - 再创建一条自定义身份策略,策略名称填写为“SWR_EE_IAM_Policies”,策略名称不能填写其他值。策略配置方式“选择JSON视图”,策略内容复制粘贴如下内容,单击“确定”。
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "iam:users:getUser" ] } ] } - 在左侧导航窗格中,选择“委托”页签,单击“创建委托”。
- 在创建委托页面,委托名称填写为“swr_ee_trust”,委托类型选择“云服务”,云服务选择“容器镜像服务”,最大会话持续时长选择“永久”,单击“完成”。
- 创建成功后单击“立即授权”,勾选中步骤3和创建步骤4创建的两条自定义身份策略SWR_EE_Policies以及SWR_EE_OBS_Policies,单击“下一步”,授权范围选择“所有资源”,单击“确定”。
- 如需支持制品扫描功能,还需要在SWR_EE_Policies策略下增加以下权限:
hss:images:set hss:images:list hss:vuls:list hss:containers:list hss:containers:set swr:instance:createTempCredential swr:instance:list swr:repository:listRepositories swr:repository:listArtifacts swr:repository:downloadArtifact swr:repository:getTag
授权完成后需等待15-30分钟方可生效,请耐心等待!