Skip to main content

Bucket policy

Bucket policies são regras de controle de acesso associadas a um bucket de armazenamento, que definem quem pode acessar ou gerenciar os objetos armazenados dentro desse bucket e de que forma. Essas políticas permitem que você controle permissões de forma detalhada, especificando ações permitidas, condições para acesso e usuários ou grupos que têm acesso.

Para definir a política de um bucket via CLI, utilize os seguintes comandos:

MGC-CLI

mgc object-storage buckets policy set NOME_DO_BUCKET POLICY

AWS S3API

aws s3api put-bucket-policy --bucket NOME_DO_BUCKET --policy POLICY

As políticas são definidas utilizando um documento de política com a seguinte sintaxe:

policy  = {
<version_block?>
<id_block?>
<statement_block>
}

<version_block> = "Version" : ("2012-10-17")

<id_block> = "Id" : <policy_id_string>

<statement_block> = "Statement" : [ <statement>, <statement>, ... ]

<statement> = {
<sid_block?>,
<principal_block?>,
<effect_block>,
<action_block>,
<resource_block>
}

<sid_block> = "Sid" : <sid_string>

<effect_block> = "Effect" : ("Allow" | "Deny")

<principal_block> = ("Principal") : ("*" | <principal_map>)

<principal_map> = { <principal_map_entry>, <principal_map_entry>, ... }

<principal_map_entry> = ("MGC") :
[<principal_id_string>, <principal_id_string>, ...]

<action_block> = ("Action") :
("*" | <action_string> | [<action_string>, <action_string>, ...])

<resource_block> = ("Resource") :
: ("*" | <resource_string> | [<resource_string>, <resource_string>, ...])

Exemplos:

  1. Permitir que qualquer usuário delete objetos em meu-bucket:
{
"Version": "2024-07-19",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:DeleteObject",
"Resource": "meu-bucket"
}
]
}

  1. Permitir que um usuário específico possa armazenar objetos na pasta imagens:
{
"Version": "2024-07-19",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"MGC": ["12345678"]
},
"Action": "s3:PutObject",
"Resource": "meu-bucket/imagens/*"
}
]
}