定义 IAM 访问策略 Container Registry
作为管理员,您可以定义 IBM Cloud® Identity and Access Management (IAM) 访问策略,为 IBM Cloud® Container Registry 中的不同用户创建不同级别的访问权限。 例如,可以授权某些用户查看配额,授权其他用户设置配额。
您必须为每个使用 IBM Cloud Container Registry 的用户定义 IAM 访问策略用于向用户、服务标识和访问组授予帐户资源访问权的方法。 访问策略包含主体、目标和角色。。 IAM 访问策略的范围基于用户的一个或多个角色,这些角色决定了用户可以执行的操作。 有些角色是预定义的,但也可以定义自定义角色。
要了解有关 IAM 访问策略的更多信息,请参阅 IBM Cloud IAM 角色。
您可以将 Container Registry 命名空间分配给 资源组,并将访问策略的范围分配给该组,请参阅 规划命名空间。 不过,你仍然可以定义访问策略,这些策略的作用域可以是单个 Container Registry 命名空间,也可以是账户拥有的所有命名空间。
创建策略
在开始之前,请完成以下任务:
-
决定每个用户需要的角色和 IBM Cloud Container Registry 中的资源,请参阅 IAM 角色。 您可以创建多个策略,例如,您可以在一个资源上授予写入访问权,但在另一个资源上只授予读取访问权。 策略是可叠加的,这意味着全局读策略和作用域限定为资源的写策略会授予对该资源的读和写访问权。
-
如果希望用户在 IBM Cloud Kubernetes Service 中创建群集,请确保为这些用户分配 IBM Cloud Container Registry 管理员角色,而不要分配资源组。 有关详细信息,请参阅 准备账户以创建群集。
要为 IBM Cloud Container Registry 创建策略,“服务名称”字段必须为 container-registry
。
如果要访问资源,必须为用户或服务 ID 分配角色。 如果要授予对所有内容的访问权,那么不要指定资源类型或资源。 如果要授予对特定名称空间的访问权,请将资源类型指定为 namespace
,然后将该名称空间的名称用作资源。
- 要为用户创建策略,请参阅管理对资源的访问权。
- 要为服务 ID 创建策略,请运行
ibmcloud iam service-policy-create
命令或使用 IBM Cloud 控制台将角色与服务 ID 绑定。 要创建策略,您必须具有“管理员”角色。 您在自己的帐户上会自动具有“管理员”角色。 有关详细信息,请参阅 创建和使用服务 ID 以及 管理对资源的访问。
有关 IBM Cloud Container Registry 的有用访问策略示例,请参阅 授予访问 Container Registry 资源教程。
为 IAM 设置基于区域的策略
对于全球以外的所有区域,您可以在创建规则时使用区域字段。 例如,在命令行界面(CLI)中,us-south
使用 --region us-south
选项。 但是,由于 global 是一个地理区域而不是一个地区,因此您必须省略 --region
选项,并在 --attributes
字段中添加 geography=global
。
基于区域的用户策略
下面的示例显示了创建用户策略为 us-south
中的用户分配角色的命令,其中 USER_ID
是用户 ID (name@example.com
),ROLES
是要分配的一个或多个角色:
ibmcloud iam user-policy-create USER_ID --roles ROLES --service-name container-registry --region us-south
下面的示例显示了创建用户策略为 global
中的用户分配角色的命令,其中 USER_ID
是用户 ID (name@example.com
),ROLES
是要分配的一个或多个角色:
ibmcloud iam user-policy-create USER_ID --roles ROLES --service-name container-registry --attributes "geography=global"
基于区域的服务 ID 政策
下面的示例显示了在 us-south
中创建服务 ID 策略的命令,其中 SERVICE_ID
是服务 ID,ROLES
是要分配的一个或多个角色:
ibmcloud iam service-policy-create SERVICE_ID --roles ROLES --service-name container-registry --region us-south
下面的示例显示了在 global
中创建服务 ID 策略的命令,其中 SERVICE_ID
是服务 ID,ROLES
是要分配的一个或多个角色:
ibmcloud iam service-policy-create SERVICE_ID --roles ROLES --service-name container-registry --attributes "geography=global"