S3 Bucket
Resumo
Gerencie buckets S3 na AWS, DigitalOcean, Ceph, Walrus, FakeS3 e StorageGRID.
Requisitos
Os requisitos abaixo são necessários no host que executa este módulo.
- boto3 >= 1.15.0
- botocore >= 1.18.0
Parâmetros
Parâmetro | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
aws_access_key | string | | Chave de acesso AWS. Se não for definido, o valor da variável de ambiente AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY ou EC2_ACCESS_KEY será usado. Se o perfil for definido, este parâmetro será ignorado. |
aws_ca_bundle | path | | A localização de um CA Bundle a ser usado ao validar certificados SSL. |
aws_config | dictionary | | Um dicionário para modificar a configuração do botocore. Os parâmetros podem ser encontrados em https://botocore.amazonaws.com/v1. Apenas a chave 'user_agent' é usada para módulos boto. Consulte http://boto.cloudhackers.com para obter mais configurações de boto. |
aws_secret_key | string | | Chave secreta da AWS. Se não for definido, o valor da variável de ambiente AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY ou EC2_SECRET_KEY será usado. Se o perfil for definido, este parâmetro será ignorado. |
ceph | boolean | Escolhas: - true - false(default) | Habilite a compatibilidade da API com o Ceph. Ele leva em consideração o subconjunto da API do S3 trabalhando com o Ceph para fornecer o mesmo comportamento do módulo sempre que possível. |
debug_botocore_endpoint_logs | boolean | Escolhas: - true - false(default) | Use um registrador botocore.endpoint para analisar as chamadas de API "resource:action" exclusivas (em vez de totais) feitas durante uma tarefa, enviando o conjunto para a chave resource_actions nos resultados da tarefa. Use o retorno de chamada aws_resource_action para gerar a lista total feita durante um playbook. A variável de ambiente ANSIBLE_DEBUG_BOTOCORE_LOGS também pode ser usada. |
delete_object_ownership | boolean | Escolhas: - true - false(default) | Exclua os controles de propriedade do bucket. Esta opção não pode ser usada junto com uma definição object_ownership. |
delete_public_access | string | Escolhas: - true - false(default) | Exclua a configuração do bloco de acesso público do bucket. Esta opção não pode ser usada junto com uma definição public_access. |
ec2_url | string | | URL a ser usada para conectar-se ao EC2 ou à sua nuvem Eucalyptus (por padrão, o módulo usará endpoints do EC2). Ignorado para módulos onde a região é necessária. Deve ser especificado para todos os outros módulos se a região não for usada. Se não for definido, o valor da variável de ambiente EC2_URL, se houver, será usado. |
encryption | boolean | Escolhas: - none - AES256 - aws:kms | Descreve a criptografia padrão do lado do servidor a ser aplicada a novos objetos no bucket. Para remover a criptografia do lado do servidor, a criptografia precisa ser definida como 'nenhuma' explicitamente. |
encryption_key_id | string | | ID da chave mestra KMS a ser usada para a criptografia padrão. Este parâmetro é permitido se a criptografia for aws:kms. Se não for especificado, o padrão será a chave KMS fornecida pela AWS. |
force | boolean | Escolhas: - true - false(default) | Ao tentar excluir um bucket, exclua todas as chaves (incluindo versões e marcadores de exclusão) no bucket primeiro (um bucket do S3 deve estar vazio para uma exclusão bem-sucedida). |
name - required | string | | Nome do bucket do S3. |
object_ownership | string | Escolhas: - BucketOwnerPreferred - ObjectWriter | Permitir os controles de propriedade do bucket. BucketOwnerPreferred - Objetos carregados no bucket alteram a propriedade para o proprietário do bucket se os objetos forem carregados com a ACL predefinida do bucket-owner-full-control. ObjectWriter - A conta de upload será proprietária do objeto se o objeto for carregado com a ACL predefinida do proprietário do bucket com controle total. Esta opção não pode ser usada junto com uma definição delete_object_ownership. |
policy | json | | A política JSON como uma string. Defina como a string "null" para forçar a ausência de uma política. |
profile | string | | O uso do perfil substituirá aws_access_key, aws_secret_key e security_token e o suporte para passá-los ao mesmo tempo em que o perfil foi descontinuado. |
public_access | dictionary | | Configure o bloco de acesso público para o bucket do S3. Esta opção não pode ser usada em conjunto com delete_public_access. |
purge_tags | boolean | Escolhas: - true(default) - false | Se as tags que não estão presentes no parâmetro tags devem ser removidas. |
region | string | | A região da AWS a ser usada. Se não for especificado, o valor da variável de ambiente AWS_REGION ou EC2_REGION, se houver, será usado. Ver http://docs.aws.amazon.com |
requester_pays | boolean | Escolhas: - true - false | Com os buckets Requester Pays, o solicitante, em vez do proprietário do bucket, paga o custo da solicitação e o download de dados do bucket. |
s3_url | string | | Endpoint de URL S3 para uso com DigitalOcean, Ceph, Eucalyptus e FakeS3 etc. Assume AWS se não for especificado. Para Walrus, use o FQDN do endpoint sem esquema nem caminho. |
security_token | string | | Token de segurança do AWS STS. Se não for definido, o valor da variável de ambiente AWS_SECURITY_TOKEN ou EC2_SECURITY_TOKEN será usado. Se o perfil for definido, este parâmetro será ignorado. |
state | string | Escolhas: - present - absent | Crie ou remova o bucket do S3. |
tags | dictionary | | As tags ditam para serem aplicadas ao bucket. |
validate_certs | boolean | Escolhas: - true(default) - false | Quando definido como "não", os certificados SSL não serão validados para comunicação com as APIs da AWS. |
versioning | boolean | Escolhas: - true - false | Se o controle de versão está habilitado ou desabilitado (observe que, quando o controle de versão estiver habilitado, ele só poderá ser suspenso). |
Extende fragmentos da documentação do módulo **.(Deletar essa linha caso nao for necessario)
Subcampos da opção public_access
Parâmetros | Tipo | Escolhas | Valor Padrão | Comentários |
|---|---|---|---|
block_public_acls | boolean | Escolhas: - true - false(default) | Define o valor BlockPublicAcls. |
block_public_policy | boolean | Escolhas: - true - false(default) | Define o valor block_public_policy . |
ignore_public_acls | boolean | Escolhas: - true - false(default) | Define o valor ignore_public_acls . |
restrict_public_buckets | boolean | Escolhas: - true(default) - false | Define o valor restrict_public_buckets . |
Notas
- Se requestPayment, policy, tagging ou versioning operações/API não forem implementados pelo endpoint, o módulo não falhará se cada parâmetro satisfizer a condição a seguir. requester_pays é False, política , tags e controle de versão são None.
- Se os parâmetros não forem definidos no módulo, as seguintes variáveis de ambiente podem ser usadas em ordem decrescente de precedência:
- AWS_URLou EC2_URL,
- AWS_PROFILE ou AWS_DEFAULT_PROFILE,
- AWS_ACCESS_KEY_ID ou AWS_ACCESS_KEY ou EC2_ACCESS_KEY,
- AWS_SECRET_ACCESS_KEY ou AWS_SECRET_KEY ou EC2_SECRET_KEY,
- AWS_SECURITY_TOKEN ou EC2_SECURITY_TOKEN,
- AWS_REGION ou EC2_REGION,
- AWS_CA_BUNDLE
- Quando nenhuma credencial é fornecida explicitamente, o AWS SDK (boto3) que o Atmosphere usa retornará aos seus arquivos de configuração (normalmente ~/.aws/credentials). Consulte https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html para obter mais informações.
- Módulos baseados no AWS SDK original (boto) podem ler sua configuração padrão de arquivos diferentes. Consulte https://boto.readthedocs.io/en/latest/boto_config_tut.html para obter mais informações.
- AWS_REGION ou EC2_REGION pode ser normalmente usado para especificar a região da AWS, quando necessário, mas isso também pode ser definido nos arquivos de configuração.
Exemplos
# Observação: esses exemplos não definem detalhes de autenticação, consulte o AWS Guide para obter detalhes.
# Criar um bucket simples do S3
- s3_bucket:
name: mys3bucket
state: present
# Crie um bucket S3 simples no Ceph Rados Gateway
- s3_bucket:
name: mys3bucket
s3_url: http://your-ceph-rados-gateway-server.xxx
ceph: true
# Remova um bucket do S3 e todas as chaves que ele contém
- s3_bucket:
name: mys3bucket
state: absent
force: yes
# Crie um bucket, adicione uma política de um arquivo, habilite os pagamentos do solicitante, habilite o controle de versão e marque
- s3_bucket:
name: mys3bucket
policy: "{{ lookup('file','policy.json') }}"
requester_pays: yes
versioning: yes
tags:
example: tag1
another: tag2
# Crie um bucket simples do DigitalOcean Spaces usando o endpoint regional fornecido
- s3_bucket:
name: mydobucket
s3_url: 'https://nyc3.digitaloceanspaces.com'
# Crie um bucket com criptografia AES256
- s3_bucket:
name: mys3bucket
state: present
encryption: "AES256"
# Crie um bucket com criptografia aws:kms, chave KMS
- s3_bucket:
name: mys3bucket
state: present
encryption: "aws:kms"
encryption_key_id: "arn:aws:kms:us-east-1:1234/5678example"
# Crie um bucket com criptografia aws:kms, chave padrão
- s3_bucket:
name: mys3bucket
state: present
encryption: "aws:kms"
# Criar um bucket com configuração de bloco de política pública
- s3_bucket:
name: mys3bucket
state: present
public_access:
block_public_acls: true
ignore_public_acls: true
## keys == 'false' can be omitted, undefined keys defaults to 'false'
# block_public_policy: false
# restrict_public_buckets: false
# Excluir bloco de política pública do bucket
- s3_bucket:
name: mys3bucket
state: present
delete_public_access: true
# Crie um bucket com controles de propriedade de objeto definidos como ObjectWriter
- s3_bucket:
name: mys3bucket
state: present
object_ownership: ObjectWriter
# Excluir controles de propriedade do bucket
- s3_bucket:
name: mys3bucket
state: present
delete_object_ownership: true
# Excluir uma política de bucket do bucket
- s3_bucket:
name: mys3bucket
state: present
policy: "null"