为功能开发准备租户

要使函数能够访问其他 Oracle Cloud Infrastructure 资源,必须将该函数包含在动态组中,然后创建策略以授予对该资源的动态组访问权限。

为函数创建动态组

动态组允许您将 Oracle Cloud Infrastructure 计算机实例分组为“主体”操作者(类似于用户组)。然后,可以创建策略以允许实例对 Oracle Cloud Infrastructure 服务进行 API 调用。

创建动态组时,而不是显式向组中添加成员,而是定义一组匹配规则以定义组成员。例如,规则可以指定特定区间中的所有实例都是动态组的成员。当实例在该区间中启动和终止时,成员可以动态更改。

  1. 打开控制台,单击身份,然后单击动态组。此时将显示租户中动态组的列表。
  2. 单击创建动态组
  3. 请输入以下信息:
    • 名称:组的唯一名称。该名称在租户中的所有组(动态组和用户组)中必须唯一。以后无法更改此项。
    • 说明:友好描述。您不能在控制台中更改此项,但可以使用 API 更改此项。
  4. 输入匹配规则。符合规则标准的资源是组的成员。
    • 规则 1:要允许区间中的所有函数都能够访问资源,请输入类似于以下内容的规则,其中 <compartment_id> 是部署应用程序和关联函数的区间的 OCID:
      ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment_id>'}
    • 根据需要输入附加规则。要添加规则,请单击 +Additional 规则

  5. 如果您具有创建资源的权限,则还具有将自由格式标记应用于该资源的权限。要应用定义的标记,您必须具有使用标记名称空间的权限。如果不确定是否应应用标记,则跳过此选项(以后可以应用标记)或询问管理员。
  6. 单击创建动态组

    将验证匹配规则语法,但不验证您在规则中使用的 OCID。请确保您输入的 OCID 是正确的。

创建函数的策略

策略允许组以特定方式在特定区间中使用特定类型的资源。

您要为其编写策略的组和区间必须已存在。

以下步骤将策略添加到将部署应用程序和关联函数的区间以及实例的根区间。

  1. 打开导航菜单。在治理和管理下,单击身份,然后单击略。
    此时将显示您正在查看的区间中的策略列表。
  2. 从左侧的区间列表中,选择将在其中部署应用程序和关联函数的区间。
  3. 单击创建策略
  4. 提供以下内容:
    • 名称:策略的唯一名称。该名称在租户中的所有策略中必须唯一。以后不能更改它。
    • 说明:友好描述。如果需要,可以稍后更改此项。
    • 策略版本化:如果您希望策略保持最新状态,则选择使策略保持最新状态,以便将来更改服务的动词和资源定义。或者,如果您希望根据特定日期的当前定义限制访问,请选择使用版本日期,然后以 YYY-MM-DD 格式输入该日期。
  5. 提供 policy 句。要添加一个或多个预定义语句,请单击自定义(高级)。
    添加以下策略语句,其中 <group_name> 是关联动态组的名称,<compartment_name> 是部署应用程序和关联函数的区间:
    • 添加以下语句以允许函数访问区间中的资源:
      Allow dynamic-group <group_name> to manage buckets in compartment <compartment_name>
      Allow dynamic-group <group_name> to manage objects in compartment <compartment_name>
      allow dynamic-group <group_name> to use autonomous-databases in compartment <compartment_name> where request.permission='AUTONOMOUS_DATABASE_CONTENT_READ'
      Allow dynamic-group <group_name> to inspect instances in compartment <compartment_name>
      Allow service FaaS to use virtual-network-family in compartment <compartment_name>
      Allow group fleetAdmins to manage functions-family in compartment <compartment_name>
    • 添加以下语句以允许 Oracle Cloud Infrastructure Events 在上载到 Oracle Cloud Infrastructure Object Storage 时调用函数:
      Allow dynamic-group <group_name> to inspect streams in compartment <compartment_name>
      Allow dynamic-group <group_name> to manage cloudevents-rules in compartment <compartment_name>
      Allow dynamic-group <group_name> to use stream-push in compartment <compartment_name>
      Allow dynamic-group <group_name> to use stream-pull in compartment <compartment_name>
  6. 单击创建
    新创建的策略随区间的策略一起列出。
  7. 从左侧的区间列表中,选择根区间 (< instance-name > (root) ),然后重复以上步骤 3 和 4。
  8. 提供 policy 句。要添加一个或多个预定义语句,请单击自定义(高级)。
    添加以下策略语句,其中 <compartment_name> 是部署应用程序和关联函数的区间:
    Allow service FaaS to manage repos in tenancy
    Allow service FaaS to use virtual-network-family in compartment <compartment_name>
  9. 单击创建
    新创建的策略随根区间的策略一起列出。