Skip to main content

Policy do Bucket

Criar Bucket Policy

info

Para mais informações sobre Bucket Policy, consulte a documentação de 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.

Você pode gerenciar suas Bucket Policies diretamente através do console de gerenciamento disponível em: https://console.magalu.cloud/.

Navegue até "Object Storage"

Clique nos três pontos laterais, e terá uma visualização como a mostrada abaixo: Bucket Policy Clique em "Editar Política"

Esse painel permite:

  • Criar novas políticas.
  • Editar políticas existentes.

Esse recurso proporciona um ambiente centralizado e de fácil uso para garantir que suas políticas estão configuradas de acordo com as melhores práticas de segurança e governança de dados.



Bucket Policy Sintaxe

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>, ...])



Editar Bucket Policy

Esta página fornece instruções sobre como editar a Bucket Policy no nosso serviço de Object Storage. A Bucket Policy é crucial para controlar o acesso e as permissões do seu bucket.

Nota

Atualmente, não permitimos a edição direta de bucket policy, para a substituição, siga os passos abaixo.

  1. Recupere a Bucket Policy atual:
mgc object-storage buckets policy get --dst NOME_DO_BUCKET
  1. Altere conforme a sua necessidade, segue documentações com exemplos abaixo:
  • Políticas de Permissão (Allow): Documentação sobre políticas de bucket de exemplo #TODO
  • Políticas de Negação (Deny): Documentação sobre políticas de bucket de exemplo com negação #TODO
  1. Remova a Bucket Policy atual:
mgc object-storage buckets policy delete --dst NOME_DO_BUCKET
  1. Aplique a nova Bucket Policy:
mgc object-storage buckets policy set --dst NOME_DO_BUCKET --policy POLICY


Considerações de Segurança

Ao editar a Bucket Policy, certifique-se de:

  • Não conceder mais permissões do que o necessário
  • Revisar cuidadosamente a policy antes de aplicá-la
  • Testar o acesso após a aplicação da nova policy

Remover Bucket Policy

Para remover uma Bucket Policy siga os passos abaixo:

mgc object-storage buckets policy delete --dst NOME_DO_BUCKET


Exemplos

Permitir Acessos com Policies

Permitir Somente Leitura

Este exemplo ilustra como permitir a ação s3:GetObject para todos os usuários em meu-bucket, garantindo que o conteúdo do bucket possa ser acessado sem restrições de leitura. Essa configuração é útil para compartilhar dados publicamente, mantendo a integridade e a segurança dos arquivos.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "meu-bucket/*"
}
]
}

Permitir que um Usuário Específico Possa Armazenar Objetos em uma Pasta

Este exemplo demonstra como permitir a ação s3:PutObject para um usuário identificado pelo MGC, restringindo o acesso à pasta imagens dentro de meu-bucket. Essa configuração é útil para organizar dados e manter o controle sobre quem pode adicionar novos arquivos em determinadas áreas do bucket.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"MGC": ["12345678"]
},
"Action": "s3:PutObject",
"Resource": "meu-bucket/imagens/*"
}
]
}

Permitir Acesso a um Bucket Somente para um Usuário Específico

Este exemplo ilustra como permitir a ação s3:GetObject para um usuário específico, identificado pelo MGC, em meu-bucket. Essa abordagem é ideal para situações em que você precisa proteger dados sensíveis, garantindo que apenas usuários autorizados possam acessar os recursos do bucket.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"MGC": ["TENANT-ID"]
},
"Action": "s3:GetObject",
"Resource": "meu-bucket/*"
}
]
}

Permitir que Qualquer Usuário Delete Objetos

Esse exemplo ilustra como permitir a ação s3:DeleteObject para todos os usuários, garantindo que qualquer um possa excluir objetos contidos em meu-bucket. É importante ter em mente que essa configuração pode ter implicações significativas de segurança, portanto, deve ser utilizada com cautela.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:DeleteObject",
"Resource": "meu-bucket"
}
]
}

Permitir Várias Ações para Diferentes Principais em um Bucket

Nesta seção, você aprenderá como configurar permissões de acesso a um bucket de forma a permitir diferentes ações para diferentes entidades (principais). Utilizando uma política JSON, você poderá especificar quais usuários ou grupos têm permissão para realizar ações como obter, adicionar ou deletar objetos, além de listar o conteúdo do bucket.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"MGC": [
"TENANT-ID",
"TENANT-ID"
]
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "meu-bucket/*"
},
{
"Effect": "Allow",
"Principal": {
"MGC": ["TENANT-ID"]
},
"Action": "s3:ListBucket",
"Resource": "meu-bucket"
}
]
}

Negar Acessos com Policies

Negar Acesso Geral a um Bucket

Este exemplo ilustra como negar a ação s3:GetObject para todos os usuários em meu-bucket, garantindo que o conteúdo do bucket não possa ser acessado sem autorização. Essa configuração é útil para proteger dados sensíveis.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "meu-bucket/*"
}
]
}

Negar Acesso a uma Pasta para Usuários Não Autorizados

Este exemplo demonstra como negar a ação s3:PutObject para usuários que não estão identificados pelo MGC, restringindo o acesso à pasta imagens dentro de meu-bucket. Essa configuração é útil para manter o controle sobre quem pode adicionar novos arquivos.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": {
"MGC": ["TENANT-ID"]
},
"Action": "s3:PutObject",
"Resource": "meu-bucket/imagens/*"
}
]
}

Negar Acesso a um Bucket para Usuários Não Autorizados

Este exemplo ilustra como negar a ação s3:GetObject para qualquer usuário que não esteja identificado pelo MGC em meu-bucket. Essa abordagem é ideal para proteger dados sensíveis, garantindo que apenas usuários autorizados possam acessar os recursos do bucket.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": {
"MGC": ["TENANT-ID"]
},
"Action": "s3:GetObject",
"Resource": "meu-bucket/*"
}
]
}

Negar Acesso a Todos para Excluir Objetos

Esse exemplo ilustra como negar a ação s3:DeleteObject para todos os usuários, garantindo que ninguém possa excluir objetos contidos em meu-bucket. Essa configuração ajuda a proteger os dados de exclusões acidentais ou maliciosas.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:DeleteObject",
"Resource": "meu-bucket/*"
}
]
}

Negar Várias Ações para Diferentes Principais em um Bucket

Nesta seção, você aprenderá como configurar permissões de acesso a um bucket de forma a negar diferentes ações para diferentes entidades (principais). Utilizando uma política JSON, você poderá especificar quais usuários ou grupos têm suas ações restritas em relação a obter, adicionar ou deletar objetos, além de listar o conteúdo do bucket.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": {
"MGC": [
"TENANT-ID",
"TENANT-ID"
]
},
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "meu-bucket/*"
},
{
"Effect": "Deny",
"Principal": {
"MGC": ["TENANT-ID"]
},
"Action": "s3:ListBucket",
"Resource": "meu-bucket"
}
]
}

Negar Acesso a Todos, Exceto a um Usuário Específico

Esse exemplo demonstra como usar duas declarações: a primeira nega explicitamente o acesso a todos os usuários para a ação s3:GetObject em meu-bucket, e a segunda permite que um usuário específico (definido pelo MGC) realize a mesma ação. Essa abordagem é útil para proteger dados sensíveis e garantir que apenas usuários autorizados tenham acesso.

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "meu-bucket/*"
},
{
"Effect": "Allow",
"Principal": {
"MGC": ["TENANT-ID"]
},
"Action": "s3:GetObject",
"Resource": "meu-bucket/*"
}
]
}