要使用此功能,需要单独订阅 OCI 对象存储。请注意,存储桶是 OCI 对象存储中用来存储对象的逻辑容器。在 Account Reconciliation 的上下文中,附件被视为对象。
下面列出了 OCI 对象存储中的大致步骤:
Note:
可以在现有区间中创建存储桶,或为 Account Reconciliation 附件创建一个新区间。下面是一个存储桶设置示例。
为了使您能够测试对存储桶的访问权限,以及从测试环境无缝切换到生产环境,建议在存储桶中创建两个文件夹 - 一个文件夹用于测试环境,另一个文件夹用于生产环境。例如,如果创建一个名为 account_rec_data
的存储桶来存储附件,则在此存储桶中创建文件夹 test
和 prod
。在实施阶段,通过将存储桶 URL 指定为 <bucket_url>
/test
来使用 test
文件夹。移至生产环境时,将存储桶配置切换为 <bucket_url>
/prod
。随后可以删除文件夹 test
,而不会对生产环境产生任何影响。
可选:OCI 对象存储中的保留规则遵循您公司的审核要求(例如,五到七年)。
建议创建一个单独的用户来访问 Account Reconciliation 的对象存储。必须向此用户授予访问附件存储桶和管理存储桶中对象的权限。
您需要创建组才能分配策略。
对象存储的访问由身份和访问管理 (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'}}
Note:
身份验证令牌在创建后不会显示,因此请记录该令牌,以便稍后在配置过程中使用。示例:配置策略
在创建策略时,请确保选择存储桶存储到的区间或租户。例如,如果您的存储桶是在区间 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'}}