Detalhes do Serviço Object Storage e Archive Storage

Este tópico abrange detalhes de gravação de políticas para controlar o acesso ao serviço Archive Storage e ao Object Storage.

Dica

O recurso de políticas do ciclo de vida do objeto requer que você conceda permissões ao serviço Object Storage para arquivar e excluir objetos em seu nome. Consulte Usando Políticas do Ciclo de Vida do Objeto para obter mais informações.

Tipos de Recursos

Tipos de Recursos Individuais

objectstorage-namespaces

buckets

objects

Agregar Tipo de Recurso

object-family

Uma política que usa <verb> object-family é equivalente a gravar uma instrução <verb> <individual resource-type> separada para cada um dos tipos de recursos individuais.

Consulte a tabela em Detalhes para Combinações de Verbo + Resource-Type para obter um detalhamento das operações da API abrangidas por cada verbo, para cada resource-type individual incluído em object-family.

Variáveis Suportadas

O serviço Object Storage suporta todas as variáveis gerais (consulte Variáveis Gerais para Todas as Solicitações), além das listadas aqui:

Operações para Este Tipo de Recurso... Pode Usar Esta Variável Tipo de variável Comentários
buckets e objects target.bucket.name String e Padrões Use esta variável para controlar o acesso a um bucket específico. Importante: A correspondência de condições não faz distinção entre maiúsculas e minúsculas. Se você tiver um bucket chamado "BucketA" e um bucket chamado "bucketA", a condição where target.bucket.name="BucketA" será aplicada a ambos. Para evitar possíveis problemas com nomes de recursos na política, dê nomes distintos aos seus recursos.
buckets e objects target.bucket.tag.<TagNamespace>.<TagKeyDefinition> String Use esta variável para controlar o acesso aos buckets que têm a tag específica. Consulte Permitir que os usuários gravem objetos em buckets do serviço Object Storage. Importante: Você não pode usar essa variável para operações CreateBucket e operações que envolvam vários buckets, como ListBucket.
objects target.object.name String e Padrões Use essa variável para controlar o acesso a um objeto ou padrões de objeto específicos.
Observação

As variáveis request.ipv4.ipaddress e request.vcn.id estão obsoletas. Em vez de usar essas variáveis, crie uma origem de rede para especificar uma faixa de endereços IP ou um ID de VCN específico. Em seguida, você pode usar a origem de rede em sua política para restringir o acesso apenas a solicitações provenientes das redes permitidas. Para obter mais informações, consulte Visão Geral de Origens de Rede.

Detalhes para Combinações de Verbo + Tipo de Recurso

As tabelas a seguir mostram as permissões e operações de API abrangidas por cada verbo. O nível de acesso é cumulativo à medida que você vai de inspect > read > use > manage. Por exemplo, um grupo que pode usar um recurso também pode inspecionar e ler esse recurso. Um sinal de mais (+) em uma célula da tabela indica o acesso incremental comparado à célula diretamente acima dela, enquanto "sem extra" indica acesso incremental.

Para Tipos de Recursos object-family

objectstorage-namespaces
Verbos Permissões APIs Totalmente Abrangidas APIs Parcialmente Abrangidas
read OBJECTSTORAGE_NAMESPACE_READ GetNamespace none
use OBJECTSTORAGE_NAMESPACE_READ GetNamespace none
manage OBJECTSTORAGE_NAMESPACE_READ

OBJECTSTORAGE_NAMESPACE_UPDATE

GetNamespace com parâmetro compartmentId opcional

GetNamespaceMetadata

UpdateNamespaceMetadata

none
buckets
Verbos Permissões APIs Totalmente Abrangidas APIs Parcialmente Abrangidas
inspect

BUCKET_INSPECT

HeadBucket

ListBuckets

none

read

INSPECT +

BUCKET_READ

INSPECT +

GetBucket

ListMultipartUploads

GetObjectLifecyclePolicy

GetRetentionRule

ListRetentionRules

GetReplicationPolicy

ListReplicationPolicies

ListReplicationSources

none

use

READ +

BUCKET_UPDATE

READ +

UpdateBucket

DeleteObjectLifecyclePolicy

ReencryptBucket

PutObjectLifecyclePolicy
manage

USE +

BUCKET_CREATE

BUCKET_DELETE

PAR_MANAGE

RETENTION_RULE_MANAGE

RETENTION_RULE_LOCK (se estiver usando o bloqueio de regra opcional)

USE +

CreateBucket

DeleteBucket

CreatePreauthenticatedRequest

GetPreauthenticatedRequest

ListPreauthenticatedRequest

DeletePreauthenticatedRequest

CreateRetentionRule

UpdateRetentionRule

DeleteRetentionRule

CreateReplicationPolicy, DeleteReplicationPolicy, MakeBucketWritable (estas operações também precisam de manage objects)

objects
Verbos Permissões APIs Totalmente Abrangidas APIs Parcialmente Abrangidas
inspect

OBJECT_INSPECT

HeadObject

ListObjects

ListMultipartUploadParts

none

read

INSPECT +

OBJECT_READ

INSPECT +

GetObject

none

use

READ +

OBJECT_OVERWRITE

READ +

ReencryptObject

READ +

PutObject (USE permite que PutObject substitua objetos existentes, mas a criação de um novo objeto também requer OBJECT_CREATE)

CreateMultipartUpload, UploadPart, CommitMultipartUpload (estas operações também precisam de manage objects)

manage

USE +

OBJECT_CREATE

OBJECT_DELETE

OBJECT_VERSION_DELETE

OBJECT_RESTORE

OBJECT_UPDATE_TIER

USE +

CreateObject

RenameObject

RestoreObject

DeleteObject

DeleteObjectVersion

UpdateObjectStorageTier

CreateMultipartUpload

UploadPart

CommitMultipartUpload

AbortMultipartUpload

PutObjectLifecyclePolicy (também precisa de manage objects)

CreateReplicationPolicy, DeleteReplicationPolicy, MakeBucketWritable (estas operações também precisam de manage buckets)

 

Permissões Exigidas para Cada Operação de API

A tabela a seguir lista as operações de API em uma ordem lógica, agrupadas por tipo de recurso.

Para obter informações sobre permissões, consulte Permissões.

Operação da API Permissões Necessárias para Usar a Operação
GetNamespace

A API não requer permissões e retorna o namespace do chamador. Use a API para validar suas credenciais.

A permissão OBJECTSTORAGE_NAMESPACE_READ será necessária se você incluir o parâmetro compartmentId opcional. Use o parâmetro compartmentId para localizar o namespace de uma tenancy de terceiros.

GetNamespaceMetadata OBJECTSTORAGE_NAMESPACE_READ
UpdateNamespaceMetadata OBJECTSTORAGE_NAMESPACE_UPDATE
CreateBucket BUCKET_CREATE

Se o ID da Chave KMS for fornecido para a operação, as seguintes permissões adicionais serão necessárias:

  • KEY_ASSOCIATE
  • O assunto objectstorage-<location> também deve ter: KEY_ENCRYPT, KEY_DECRYPT, KEY_READ.
UpdateBucket BUCKET_UPDATE

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> também deve ter: KEY_ENCRYPT e KEY_DECRYPT.

GetBucket BUCKET_READ

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> deve ter KEY_DECRYPT.

HeadBucket BUCKET_INSPECT

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> deve ter KEY_DECRYPT.

ListBuckets BUCKET_INSPECT
DeleteBucket BUCKET_DELETE
ReencryptBucket BUCKET_UPDATE

O assunto objectstorage-<location> também deve ter: KEY_ENCRYPT e KEY_DECRYPT.

PutObject

A permissão necessária depende se o objeto já existe no bucket:

  • OBJECT_CREATE é necessário quando um objeto com esse nome ainda não existe no bucket.
  • O OBJECT_OVERWRITE é necessário quando um objeto com esse nome já existe no bucket.

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> deve ter KEY_ENCRYPT.

RenameObject OBJECT_CREATE e OBJECT_OVERWRITE
GetObject OBJECT_READ

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> deve ter KEY_DECRYPT.

HeadObject OBJECT_READ ou OBJECT_INSPECT

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> deve ter KEY_DECRYPT.

DeleteObject OBJECT_DELETE
DeleteObjectVersion OBJECT_VERSION_DELETE
ListObjects OBJECT_INSPECT
ListObjectVersions OBJECT_INSPECT
ReencryptObject OBJECT_READ, OBJECT_OVERWRITE

Para um bucket criptografado de chave gerenciado pelo cliente, são necessárias as seguintes permissões:

  • KEY_ASSOCIATE
  • Além disso, o assunto objectstorage-<location> também deve ter KEY_ENCRYPT, KEY_DECRYPT e KEY_READ.
RestoreObjects OBJECT_RESTORE
UpdateObjectStorageTier OBJECT_UPDATE_TIER
CreateMultipartUpload OBJECT_CREATE e OBJECT_OVERWRITE

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> deve ter KEY_ENCRYPT.

UploadPart OBJECT_CREATE e OBJECT_OVERWRITE

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> deve ter KEY_ENCRYPT.

CommitMultipartUpload BUCKET_READ, OBJECT_CREATE, OBJECT_READ e OBJECT_OVERWRITE
ListMultipartUploadParts OBJECT_INSPECT
ListMultipartUploads BUCKET_READ
AbortMultipartUpload OBJECT_DELETE
CreatePreauthenticatedRequest PAR_MANAGE
GetPreauthenticatedRequest PAR_MANAGE ou BUCKET_READ
ListPreauthenticatedRequests PAR_MANAGE ou BUCKET_READ
DeletePreauthenticatedRequest PAR_MANAGE
PutObjectLifecyclePolicy BUCKET_UPDATE, OBJECT_CREATE e OBJECT_DELETE

Além disso, o assunto objectstorage-<location> também deve ter: BUCKET_INSPECT, BUCKET_READ, OBJECT_INSPECT.

Se o bucket ao qual a política de ciclo de vida se aplica for um bucket criptografado de chave gerenciada pelo cliente, o assunto objectstorage-<location> também deverá ter: KEY_ENCRYPT e KEY_DECRYPT.

Se a operação PutObjectLifeCyclePolicy também atualizar a camada de objetos, por exemplo, do padrão para INFREQUENT_ACCESS, o usuário e o assunto objectstorage-<location> deverão receber a permissão OBJECT_UPDATE_TIER.

GetObjectLifecyclePolicy BUCKET_READ

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> deve ter KEY_DECRYPT.

DeleteObjectLifecyclePolicy BUCKET_UPDATE

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> também deve ter: KEY_ENCRYPT e KEY_DECRYPT.

CreateRetentionRule BUCKET_UPDATE e RETENTION_RULE_MANAGE (e RETENTION_RULE_LOCK)

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> também deve ter: KEY_ENCRYPT e KEY_DECRYPT.

GetRetentionRule BUCKET_READ
ListRetentionRule BUCKET_READ
UpdateRetentionRule BUCKET_UPDATE e RETENTION_RULE_MANAGE (e RETENTION_RULE_LOCK)

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> também deve ter: KEY_ENCRYPT e KEY_DECRYPT.

DeleteRetentionRule BUCKET_UPDATE e RETENTION_RULE_MANAGE

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> também deve ter: KEY_ENCRYPT e KEY_DECRYPT.

CopyObjectRequest OBJECT_READ, e a segunda permissão de usuário necessária depende se o objeto já existe no bucket:
  • OBJECT_CREATE é obrigatório quando ainda não existe um objeto com esse nome no bucket.
  • O OBJECT_OVERWRITE é necessário quando um objeto com esse nome já existe no bucket.

Além disso, o assunto objectstorage-<location> requer OBJECT_READ.

Para um bucket criptografado de chave gerenciado pelo cliente, o assunto objectstorage-<location> também deve ter KEY_ENCRYPT, KEY_DECRYPT.

GetWorkRequest OBJECT_READ
ListWorkRequests OBJECT_INSPECT
CancelWorkRequest OBJECT_DELETE
CreateReplicationPolicy OBJECT_READ, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_INSPECT, OBJECT_DELETE, OBJECT_RESTORE, BUCKET_READ, and BUCKET_UPDATE

O objeto objectstorage-<location> deve ter as mesmas permissões que o usuário.

GetReplicationPolicy BUCKET_READ
DeleteReplicationPolicy OBJECT_READ, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_INSPECT, OBJECT_DELETE, OBJECT_RESTORE, BUCKET_READ, and BUCKET_UPDATE
ListReplicationPolicies BUCKET_READ
ListReplicationSources BUCKET_READ
MakeBucketWritable OBJECT_READ, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_INSPECT, OBJECT_DELETE, BUCKET_READ, and BUCKET_UPDATE