关于设置用户组和策略
Oracle NoSQL Database Cloud Service 使用 Oracle Cloud Infrastructure 身份和访问管理 (IAM) 提供对 Oracle Cloud 的安全访问。Oracle Cloud Infrastructure IAM 支持您创建用户账户,并为用户授予检查、读取、使用或管理表的权限。
您管理 Oracle NoSQL Database Cloud Service 用户、组和动态组的方式取决于您的云账户或租户是否已更新为使用 Oracle Cloud Infrastructure Identity and Access Management (IAM) 身份域。您可以轻松确定 OCI 租户何时更新为使用身份和访问管理 (Identity and Access Management,IAM) 身份域。
下面显示了具有身份域的租户的 OCI 控制台。
下面显示了不带身份域的租户的 OCI 控制台。
有关详细信息,请参阅是否可以访问身份域?
使用身份和访问管理设置用户、组、动态组和策略
Oracle NoSQL Database Cloud Service 使用 Oracle Cloud Infrastructure Identity and Access Management (IAM) 提供对 Oracle Cloud 的安全访问。使用 Oracle Cloud Infrastructure IAM,您可以创建用户账户,并为用户授予检查、读取、使用或管理表的权限。
如果要作为用户主体进行验证(使用 API 签名密钥),请参见 Setting up Users,Groups and Policies 。或者,如果您要作为实例主体或资源主体进行验证,请参阅设置动态组和策略。
设置用户、组和策略
- 作为 Cloud 账户管理员登录 Cloud 账户。
- 在 Oracle Cloud Infrastructure 控制台中,添加一个或多个用户。
- 根据您的租户选择以下项之一(无论身份域是否具有身份域):
- 具有身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击域。选择要使用的身份域,然后单击用户。
- 无身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击用户。
- 单击创建用户。
- 输入有关用户的详细信息,然后单击“创建”。
- 根据您的租户选择以下项之一(无论身份域是否具有身份域):
- 在 Oracle Cloud Infrastructure 控制台中,创建一个 OCI 组。
- 根据您的租户选择以下项之一(无论身份域是否具有身份域):
- 具有身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击域。选择要使用的身份域,然后单击组。
- 无身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击组。
- 单击创建组。
- 输入有关组的详细资料。例如,如果要创建为用户提供完全管理 Oracle NoSQL Database Cloud Service 表的权限的策略,则可以将组命名为 nosql_service_admin (或类似),并包括简短说明,例如“有权在 Oracle Cloud Infrastructure 上设置和管理 Oracle NoSQL Database Cloud Service 表的用户”(或类似)。
- 根据您的租户选择以下项之一(无论身份域是否具有身份域):
- 创建策略,为属于 OCI 组的用户提供对 Oracle NoSQL Database Cloud Service 表或区间的特定访问权限。
- 打开导航菜单,然后单击身份和安全性。在身份下,单击策略。
- 选择一个区间,然后单击创建策略。
有关详细信息和示例,请参阅策略参考和用于管理表的典型策略语句。
如果您不熟悉策略的工作原理,请参见策略的工作原理。
- 要通过 Oracle NoSQL Database Cloud Service SDK 管理和使用 NoSQL 表,用户必须设置 API 密钥。请参阅用于连接到 Oracle NoSQL Database 的验证。
注意:
联合用户还可以管理和使用 Oracle NoSQL Database Cloud Service 表。这要求服务管理员在 Oracle Cloud Infrastructure Identity and Access Management 中设置联盟。请参阅与身份提供者联合。属于策略语句中提及的任何组的用户在下次登录控制台时将获得新的权限。
设置动态组和策略
- 作为 Cloud 账户管理员登录 Cloud 账户。
- 在 Oracle Cloud Infrastructure 控制台中,创建动态组。
- 根据您的租户选择以下项之一(无论身份域是否具有身份域):
- 具有身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击域。选择要使用的身份域,然后单击动态组。
- 无身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击动态组。
- 单击创建动态组并输入名称、说明和规则,或使用规则构建器添加规则。
- 单击 "Create"(创建)。
符合规则标准的资源是动态组的成员。为动态组定义规则时,请考虑将授予哪些资源对其他资源的访问权限。创建规则的一些示例:
- 函数的匹配规则:
ALL {resource.type = 'fnfunc',resource.compartment.id = 'ocid1.compartment.oc1..aaaaaaaafml3tca3zcxyifmdff3aadp5uojimgx3cdnirgup6rhptxwnandq'}
此规则意味着给定区间中名为fnfunc
的任何资源类型(具有上面指定的 ID)都是动态组的成员。注意:
有关不同资源类型的更多信息,请参见 Resource Types 。 - 为实例主用户添加实例时的规则:
ALL { instance.compartment.id = 'ocid1.compartment.oc1..aaaaaaaa4mlehopmvdluv2wjcdp4tnh2ypjz3nhhpahb4ss7yvxaa3be3diq'}
此规则意味着具有上面指定的区间 ID 的任何实例都是动态组的成员。
- 将 API 网关用于函数时的规则:
ALL {resource.type = 'ApiGateway',resource.compartment.id = 'ocid1.compartment.oc1..aaaaaaaafml3tca3zcxyifmdff3aadp5uojimgx3cdnirgup6rhptxwnandq'}
此规则意味着给定区间中名为
ApiGateway
的任何资源类型(具有上面指定的 ID)都是动态组的成员。 - 使用容器实例时的规则:
ALL {resource.type = 'computecontainerinstance', resource.compartment.id = 'ocid1.compartment.oc1..aaaaaaaa4mlehopmvdluv2wjcdp4tnh2ypjz3nhhpahb4ss7yvxaa3be3diq'}
此规则意味着给定区间中名为
computecontainerinstance
的任何资源类型(具有上面指定的 ID)都是动态组的成员。
- 函数的匹配规则:
注意:
继承不适用于动态组。使用 IAM 访问策略时,父区间的策略会自动应用于所有子区间。使用动态组时,情况并非如此。您需要单独列出动态组中的每个区间,以便区间符合条件。示例:父子区间函数的匹配规则:ALL {resource.type = 'fnfunc', ANY{resource.compartment.id = '<parent-compid>', resource.compartment.id = '<child-compid1>', resource.compartment.id = '<child-compid2>', ...}}
- 根据您的租户选择以下项之一(无论身份域是否具有身份域):
- 为动态组编写策略语句以允许访问 Oracle Cloud Infrastructure 资源。
- 在 Oracle Cloud Infrastructure 控制台中,单击身份和安全,然后单击策略。
- 要为动态组编写策略,请单击创建策略,然后输入名称和说明。
- 使用策略构建器创建策略。定义策略的一般语法如下所示:
Allow <subject> to <verb> <resource-type> in <location> where <conditions>
- 主题语法:一个或多个按名称或 OCID 逗号分隔的组。
- 动词:值是检查、读取、使用或管理。
- resource-type:单个资源类型、系列资源类型(如 nosql-family)或全资源。
- 区间:按名称或 OCID 列出的单个区间或区间路径
示例:此策略允许动态组nosql_application
对区间UATnosql
中的资源使用fnfunc
访问。allow dynamic-group nosql_application to use fnfunc in compartment UATnosql
示例:此策略允许动态组
nosql_application
对区间UATnosql
中系列资源nosql-family
的manage
访问权限。 - 单击 "Create"(创建)。有关策略的详细信息,请参阅管理策略。