设置 OCI 对象存储

要使用此功能,需要单独订阅 OCI 对象存储。请注意,存储桶是 OCI 对象存储中用来存储对象的逻辑容器。在 Account Reconciliation 的上下文中,附件被视为对象。

下面列出了 OCI 对象存储中的大致步骤:

  1. OCI 对象存储中创建存储桶,以存储 Account Reconciliation 附件。有关说明,请参阅“创建存储桶 ”。

    Note:

    可以在现有区间中创建存储桶,或为 Account Reconciliation 附件创建一个新区间。

    下面是一个存储桶设置示例。


    对象存储配置

    为了使您能够测试对存储桶的访问权限,以及从测试环境无缝切换到生产环境,建议在存储桶中创建两个文件夹 - 一个文件夹用于测试环境,另一个文件夹用于生产环境。例如,如果创建一个名为 account_rec_data 的存储桶来存储附件,则在此存储桶中创建文件夹 testprod。在实施阶段,通过将存储桶 URL 指定为 <bucket_url>/test 来使用 test 文件夹。移至生产环境时,将存储桶配置切换为 <bucket_url>/prod。随后可以删除文件夹 test,而不会对生产环境产生任何影响。

  2. 确保对存储桶禁用自动分层。请参阅 "Managing Auto-Tiering for an Object Storage Bucket"。
  3. 您需要像在 OCI 对象存储中一样保留生命周期策略规则。请勿更改此设置。
  4. 可选:OCI 对象存储中的保留规则遵循您公司的审核要求(例如,五到七年)。

  5. Oracle Cloud Infrastructure (OCI) 中,需要为 Account Reconciliation 创建用户并至少为该用户授予 READ 和 WRITE 访问权限,但不授予 DELETE 访问权限。此用户可以是身份和访问管理 (IAM) 用户或联合用户。

    建议创建一个单独的用户来访问 Account Reconciliation 的对象存储。必须向此用户授予访问附件存储桶和管理存储桶中对象的权限。

  6. 您需要创建组才能分配策略。

    对象存储的访问由身份和访问管理 (IAM) 策略管理。有关常用的对象存储策略,请访问 https://docs.oracle.com/en-us/iaas/Content/Identity/Concepts/commonpolicies.htm#write-objects-to-buckets

    要创建 IAM 策略,请参阅此指南:https://docs.oracle.com/en-us/iaas/Content/Identity/Concepts/policygetstarted.htm

    下面是所需策略的一个示例。

    • Allow group ArcsAttachmentWriters to read buckets in compartment ABC

    • Allow group ArcsAttachmentWriters to manage objects in compartment ABC where all {target.bucket.name='ArcsAttachments', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}

  7. 必须为用户创建身份验证令牌。有关详细信息,请参阅 https://docs.oracle.com/en-us/iaas/Content/Identity/Tasks/managingcredentials.htm#Working

    Note:

    身份验证令牌在创建后不会显示,因此请记录该令牌,以便稍后在配置过程中使用。
  8. 创建存储桶和用户后,需要在 Account Reconciliation 中设置 OCI 对象存储,以便使用存储桶 URL 以及用户名密码建立连接。请参阅“在 Account Reconciliation 中设置 OCI 对象存储”。

示例:配置策略

在创建策略时,请确保选择存储桶存储到的区间或租户。例如,如果您的存储桶是在区间 ABC 中创建的,那么您的策略必须也位于区间 ABC 中。

存储桶位于根租户中,用户在联合身份提供程序中创建

如果您的存储桶位于根租户中,您使用了组,且用户在联合身份提供程序中创建,那么策略格式必须如下所示:

Allow group 'OracleIdentityCloudService'/'GROUP_NAME' to read buckets in tenancy
Allow group 'OracleIdentityCloudService'/'GROUP_NAME' to manage objects in tenancy where all {target.bucket.name='BUCKET_NAME', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}

例如,组名称为 arcs_attachments,存储桶名称为 arcs_bucket:

Allow group 'OracleIdentityCloudService'/'arcs_attachments' to read buckets in tenancy
Allow group 'OracleIdentityCloudService'/'arcs_attachments' to manage objects in tenancy where all {target.bucket.name='arcs_bucket', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}

存储桶位于根租户中,常规(非联合身份提供程序)组和用户

如果您的存储桶位于根租户中,您使用了常规(非联合身份提供程序)组和用户,那么策略格式必须如下所示:

Allow group GROUP_NAME to read buckets in tenancy
Allow group GROUP_NAME to manage objects in tenancy where all {target.bucket.name='BUCKET_NAME', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}

例如,组名称为 arcs_attachments,存储桶名称为 arcs_bucket:

Allow group arcs_attachments to read buckets in tenancy
Allow group arcs_attachments to manage objects in tenancy where all {target.bucket.name='arcs_bucket', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}

存储桶位于区间级别,组和用户在联合身份提供程序中创建

如果您的存储桶位于区间级别,您使用了在联合身份提供程序中创建的组和用户,那么策略格式必须如下所示:

Allow group 'OracleIdentityCloudService'/'GROUP_NAME' to read buckets in compartment COMPARTMENT_NAME
Allow group 'OracleIdentityCloudService'/'GROUP_NAME' to manage objects in compartment COMPARTMENT_NAME where all {target.bucket.name='BUCKET_NAME', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}

例如,组名称为 arcs_attachments,区间名称为 arcs_compartment:

Allow group 'OracleIdentityCloudService'/arcs_attachments' to read buckets in compartment ABC
Allow group 'OracleIdentityCloudService'/arcs_attachments' to manage objects in compartment arcs_compartment where all {target.bucket.name='arcs_bucket', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}

存储桶位于区间级别,常规(非联合身份提供程序)组和用户

如果您的存储桶位于区间级别,您使用了常规(非联合身份提供程序)组和用户,那么策略格式必须如下所示:

Allow group GROUP_NAME to read buckets in compartment COMPARTMENT_NAME
Allow group GROUP_NAME to manage objects in compartment COMPARTMENT_NAME where all {target.bucket.name='BUCKET_NAME', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}

例如,组名称为 arcs_attachments,区间名称为 arcs_compartment:

Allow group arcs_attachments to read buckets in compartment arcs_compartment
Allow group arcs_attachments to manage objects in compartment arcs_compartment where all {target.bucket.name='arcs_bucket', any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}