Uma assinatura separada para o OCI Object Storage é necessária para utilização desse recurso. Observe que um Bucket é um contêiner lógico no OCI Object Storage para o armazenamento de objetos. No contexto do Account Reconciliation, seus anexos são considerados objetos.
As etapas de alto nível no OCI Object Storage são listadas aqui:
Note:
Você pode criar um bucket em um compartimento existente ou criar outro para os anexos do Account Reconciliation.Veja a seguir o exemplo de um Bucket configurado.
Para que seja possível testar o acesso ao bucket e alternar facilmente de um ambiente de teste para um ambiente de produção, é recomendável criar duas pastas dentro do bucket: uma para o ambiente de teste e outra para o ambiente de produção. Por exemplo, se você criar um bucket chamado account_rec_data
para armazenar seus anexos, crie as pastas test
e prod
dentro desse bucket. Durante a fase de implementação, use a pasta test
especificando o URL do bucket como <bucket_url>
/test
. Ao mover para o ambiente de produção, altere a configuração do bucket para <bucket_url>
/prod
. A pasta test
pode ser excluída depois, sem qualquer impacto no ambiente de produção.
Opcional: As Regras de Retenção no OCI Object Storage seguem os requisitos de auditoria da sua empresa (por exemplo, cinco a sete anos).
É recomendável criar um usuário separado para acessar o Object Storage para o Account Reconciliation. Esse usuário precisa receber privilégios para acessar o bucket de armazenamento de anexos e para gerenciar objetos no bucket.
Você precisa criar um grupo para atribuir políticas.
O acesso ao Object Storage é gerenciado pelas políticas do Identity and Access Management (IAM). As políticas comuns de armazenamento de objetos podem ser encontradas em https://docs.oracle.com/en-us/iaas/Content/Identity/Concepts/commonpolicies.htm#write-objects-to-buckets
Para criar políticas do IAM, consulte este guia https://docs.oracle.com/en-us/iaas/Content/Identity/Concepts/policygetstarted.htm
Veja a seguir um exemplo de política que é necessária.
Permitir que o grupo ArcsAttachmentWriters leia buckets no compartimento 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:
O token de autenticação não será exibido depois que tiver sido criado. Portanto, anote o token, pois ele será usado posteriormente no processo de configuração.Exemplos: Configuração de Políticas
Ao criar uma política, certifique-se de selecionar o compartimento ou o tenancy no qual o bucket está armazenado. Por exemplo, se o bucket foi criado no compartimento ABC, a política deverá ser colocada no mesmo local.
Bucket no tenancy Raiz e usuário criado no Provedor de Identidades Federado
Se o bucket estiver no tenancy Raiz, se você estiver usando um grupo e se o usuário foi criado no Provedor de Identidades Federado, a política deverá ter o seguinte formato:
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'}}
Por exemplo, quando o nome do grupo for arcs_attachments e o nome do bucket for 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'}}
Bucket no tenancy Raiz; grupo e usuário regulares (Provedor de Identidades não federado)
Se o bucket estiver no tenancy Raiz e você estiver usando um usuário e um grupo regulares (Provedor de Identidades não federado), a política deverá ter o seguinte formato:
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'}}
Por exemplo, quando o nome do grupo for arcs_attachments e o nome do bucket for 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'}}
Bucket no Nível do Compartimento, grupo e usuário criados em um Provedor de Identidades Federado
Se o bucket estiver no nível do compartimento e você estiver usando um grupo e um usuário criados no Provedor de Identidades Federado, a política deverá ter o seguinte formato:
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'}}
Por exemplo, quando o nome do grupo for arcs_attachments e o nome do compartimento for 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'}}
Bucket no nível do Compartimento; grupo e usuário regulares (Provedor de Identidades não federado)
Se o bucket estiver no nível do comportamento e você estiver usando um usuário e um grupo regulares (Provedor de Identidades não federado), a política deverá ter o seguinte formato:
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'}}
Por exemplo, quando o nome do grupo for arcs_attachments e o nome do compartimento for 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'}}