GithubHelp home page GithubHelp logo

mentoriaiac / iac-modulo-s3 Goto Github PK

View Code? Open in Web Editor NEW
10.0 11.0 8.0 41 KB

Módulo s3 para criação e manutenção de bucket AWS S3

Shell 0.33% Makefile 40.71% HCL 36.63% Go 22.32%
aws-s3 terraform mentoria iac hacktoberfest

iac-modulo-s3's Introduction

iac-modulo-s3

Módulo s3 para criação e manutenção de bucket na AWS S3.

Requisitos

Name Version
aws ~> 3.27

Providers

Name Version
aws 3.75.1

Recursos

Name Type
aws_s3_bucket.my_bucket resource
aws_s3_bucket_acl.acl_bucket resource
aws_s3_bucket_logging.s3_log resource
aws_s3_bucket_public_access_block.policy_s3 resource
aws_s3_bucket_versioning.versioning_example resource

Inputs

Name Description Type Default Required
acl ACL aplicada ao bucket string "private" no
bucket_name Nome do bucket string n/a yes

Outputs

Name Description
this_s3_bucket_acl The acl applied to this bucket
this_s3_bucket_id The id of this bucket.
this_s3_bucket_region The aws region of this bucket

Como utilizar o módulo

No diretório examples/ podem ser encontrados exemplos de utilização, incluindo instruções de como executá-los.

Mas para adiantar um exemplo simples, a utilização do módulo pode ser feita da seguinte maneira:

  • Criação de um bucket com ACL private
module "s3_bucket" {
  source      = "github.com/marcelomansur/iac-modulo-s3"
  bucket_name = "my-private-bucket"
}

Como testar o módulo

No diretório tests/ podem ser encontrados os testes automatizados do módulos, usando terratest + localstack.

Para testar, executar comandos pelo Makefile:

$ make localtest-private-bucket # Executa teste de criação de um bucket privado
$ make localtest-public-bucket # Executa teste de criação de um bucket público

É necessário ter o Go >= 1.15 e Docker >= 20.10.5 para execução dos testes localmente.

TODO

  • Criar novos recursos no módulo (policy, tags, etc)
  • Adicionar mais exemplos (cenários de utilização do módulo)
  • Adicionar mais testes em cada cenário de utilização
  • Criar pipeline CI com testes automatizados (terratest + localstack)

iac-modulo-s3's People

Contributors

gomex avatar luizgroliveira avatar marcelomansur avatar williamsanmartin4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iac-modulo-s3's Issues

Criar imagem docker para executar testes com go + terratest

Atualmente, a execução dos testes com Go + Terratest é executada localmente na máquina. Por isso, seria interessante criar uma imagem docker para que não sejam necessárias essas dependências localmente.

Requisitos:

  • Go >= 1.15
  • Terraform >= 0.14

erro encontrado no tfsec: Enable versioning to protect against accidental/malicious removal or modification

O objetivo inicial desse ticket é descobrir se isso é um erro mesmo ou algo que nos decidimos que seja assim. Caso seja uma decisão nossa, precisamos colocar isso no ignore list do tfsec, caso seja um comportamento que desejamos mudar, devemos trabalhar na solução.

Onde está o possível erro: main.tf:1-4

Link com detalhes do possível erro e como resolver: https://aquasecurity.github.io/tfsec/latest/checks/aws/s3/enable-versioning

Pipeline quebrado: https://github.com/mentoriaiac/iac-modulo-s3/runs/6247748519?check_suite_focus=true

erro encontrado no tfsec: Define a aws_s3_bucket_public_access_block for the given bucket to control public access policies

O objetivo inicial desse ticket é descobrir se isso é um erro mesmo ou algo que nos decidimos que seja assim. Caso seja uma decisão nossa, precisamos colocar isso no ignore list do tfsec, caso seja um comportamento que desejamos mudar, devemos trabalhar na solução.

Onde está o possível erro: main.tf:1-4

Link com detalhes do possível erro e como resolver: https://aquasecurity.github.io/tfsec/latest/checks/aws/s3/specify-public-access-block

Pipeline quebrado: https://github.com/mentoriaiac/iac-modulo-s3/runs/6247748519?check_suite_focus=true

erro encontrado no tfsec: Configure bucket encryption

O objetivo inicial desse ticket é descobrir se isso é um erro mesmo ou algo que nos decidimos que seja assim. Caso seja uma decisão nossa, precisamos colocar isso no ignore list do tfsec, caso seja um comportamento que desejamos mudar, devemos trabalhar na solução.

Onde está o possível erro: main.tf:1-4

Link com detalhes do possível erro e como resolver: https://aquasecurity.github.io/tfsec/latest/checks/aws/s3/enable-bucket-encryption

Pipeline quebrado: https://github.com/mentoriaiac/iac-modulo-s3/runs/6247748519?check_suite_focus=true

erro encontrado no tfsec: Add a logging block to the resource to enable access logging

O objetivo inicial desse ticket é descobrir se isso é um erro mesmo ou algo que nos decidimos que seja assim. Caso seja uma decisão nossa, precisamos colocar isso no ignore list do tfsec, caso seja um comportamento que desejamos mudar, devemos trabalhar na solução.

Onde está o possível erro: main.tf:1-4

Link com detalhes do possível erro e como resolver: https://aquasecurity.github.io/tfsec/latest/checks/aws/s3/enable-bucket-logging

Pipeline quebrado: https://github.com/mentoriaiac/iac-modulo-s3/runs/6247748519?check_suite_focus=true

Adicionar a execução do tfsec no pipeline para realizar o scanner de segurança no codigo terraform

Adicionar a execução do tfsec no pipeline para realizar o scanner de segurança no codigo terraform

Hoje o projeto do tfsec uma boa opção para realizarmos validações de segurança do codigo terraform que produzimos.
E como uma validação de segurança é importante que ele seja executado no pipeline do projeto

DoD

  • Durante a execução do CI ter uma etapa para o tfsec

Sugestão de implementação

Utilizar o Makefile do projeto Makefiles para executar o tfsec.

Essa issue é derivação desta template-modulo-terraform/issue-8

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.