关于设置用户组和策略

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 控制台。

使用 IAM 身份域在 OCI 中创建用户

下面显示了不带身份域的租户的 OCI 控制台。

使用 IAM 在 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 。或者,如果您要作为实例主体或资源主体进行验证,请参阅设置动态组和策略

设置用户、组和策略

  1. 作为 Cloud 账户管理员登录 Cloud 账户。
  2. Oracle Cloud Infrastructure 控制台中,添加一个或多个用户。
    • 根据您的租户选择以下项之一(无论身份域是否具有身份域):
      • 具有身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击。选择要使用的身份域,然后单击用户
      • 无身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击用户
    • 单击创建用户
    • 输入有关用户的详细信息,然后单击“创建”
  3. Oracle Cloud Infrastructure 控制台中,创建一个 OCI 组。
    • 根据您的租户选择以下项之一(无论身份域是否具有身份域):
      • 具有身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击。选择要使用的身份域,然后单击
      • 无身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击
    • 单击创建组
    • 输入有关组的详细资料。例如,如果要创建为用户提供完全管理 Oracle NoSQL Database Cloud Service 表的权限的策略,则可以将组命名为 nosql_service_admin (或类似),并包括简短说明,例如“有权在 Oracle Cloud Infrastructure 上设置和管理 Oracle NoSQL Database Cloud Service 表的用户”(或类似)。
  4. 创建策略,为属于 OCI 组的用户提供对 Oracle NoSQL Database Cloud Service 表或区间的特定访问权限。
  5. 要通过 Oracle NoSQL Database Cloud Service SDK 管理和使用 NoSQL 表,用户必须设置 API 密钥。请参阅用于连接到 Oracle NoSQL Database 的验证

    注意:

    联合用户还可以管理和使用 Oracle NoSQL Database Cloud Service 表。这要求服务管理员在 Oracle Cloud Infrastructure Identity and Access Management 中设置联盟。请参阅与身份提供者联合

    属于策略语句中提及的任何组的用户在下次登录控制台时将获得新的权限。

设置动态组和策略

在使用资源主体或实例主体调用 Oracle Cloud Infrastructure 资源之前,Oracle Cloud Infrastructure 租户管理员必须创建 Oracle Cloud Infrastructure 策略、动态组以及定义资源主体或实例主体权限的规则。
  • 作为 Cloud 账户管理员登录 Cloud 账户。
  • 在 Oracle Cloud Infrastructure 控制台中,创建动态组。
    • 根据您的租户选择以下项之一(无论身份域是否具有身份域):
      • 具有身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击。选择要使用的身份域,然后单击动态组
      • 无身份域的租户:打开导航菜单并单击身份和安全。在身份下,单击动态组
    • 单击创建动态组并输入名称、说明和规则,或使用规则构建器添加规则。
    • 单击 "Create"(创建)。
      符合规则标准的资源是动态组的成员。为动态组定义规则时,请考虑将授予哪些资源对其他资源的访问权限。创建规则的一些示例:
      1. 函数的匹配规则:
        ALL {resource.type = 'fnfunc',resource.compartment.id =
        'ocid1.compartment.oc1..aaaaaaaafml3tca3zcxyifmdff3aadp5uojimgx3cdnirgup6rhptxwnandq'} 
        此规则意味着给定区间中名为 fnfunc 的任何资源类型(具有上面指定的 ID)都是动态组的成员。

        注意:

        有关不同资源类型的更多信息,请参见 Resource Types
      2. 为实例主用户添加实例时的规则:
        ALL { instance.compartment.id =
              'ocid1.compartment.oc1..aaaaaaaa4mlehopmvdluv2wjcdp4tnh2ypjz3nhhpahb4ss7yvxaa3be3diq'}

        此规则意味着具有上面指定的区间 ID 的任何实例都是动态组的成员。

      3. 将 API 网关用于函数时的规则:
        ALL {resource.type = 'ApiGateway',resource.compartment.id =
              'ocid1.compartment.oc1..aaaaaaaafml3tca3zcxyifmdff3aadp5uojimgx3cdnirgup6rhptxwnandq'}

        此规则意味着给定区间中名为 ApiGateway 的任何资源类型(具有上面指定的 ID)都是动态组的成员。

      4. 使用容器实例时的规则:
        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-familymanage 访问权限。

    • 单击 "Create"(创建)。有关策略的详细信息,请参阅管理策略