material-de-estudos

Identidade, Segurança & Computação

Sumário

Usuário Root (Raiz)

Quando criamos uma conta na AWS pela primeira vez, ele se torna o usuário raiz da conta, tendo acesso á todos os recursos e serviços da conta AWS, qualquer um que tenha acesso a essa conta, possui todos as permissões sobre o ambiente AWS.

É recomendado que não se utilize o user root para tarefas administrativas ou diárias, em vez disso, crie outro usuário IAM para administrar cada operação e atribua para ele as políticas necessárias

Com grandes poderes, vem grandes responsabilidades

É necessário adicionar vários níveis de segurança para bloquear o acesso ao usuário root e proteger a conta AWS.

MFA - Multi-factor Authentication

É extremamente recomendado habilitar o MFA (autenticação com multi-fatores) para a conta root, podendo ser um dispositivo físico, virtual ou U2F (hardware que conecta a porta USB do computador), para adicionar uma camada adicional de segurança de login ao Console de Gerenciamento da AWS dando uma maior proteção e segurança da conta, tanto root quanto a de usuários IAM

Identidade - AWS Identity and Access Management

AWS IAM

Usa-se o serviço de IAM (Identity and Access Management) do AWS, que é um serviço global, para gerenciar quem (autenticação) têm acesso a o que (autorização)

User Groups & Roles

Autenticação e Autorização

Primeiro acontece a autenticação e depois a autorização

As Políticas e Permissões (autorização) são definidos através de um documento JSON, que define as permissões de acesso podendo permitir ou negar as ações (chamadas de API) de um recurso. Você cria as polices e atribui elas a um usuário, recurso ou grupo de usuário.

A política abaixo permite que seja possível a listagem de um único bucket do S3 (Simple Storage Service) chamado example_bucket

{
  "Version": "2012-10-17", // Define a versão da linguagem da política,
  // Ela especifica as regras de sintaxe de linguagem necessárias para a AWS processar uma política
  "Statement": {
    "Effect": "Allow", // Efeito: Allow ou Deny
    // Action e Resource podem utilizar do carácter curinga (*) que simboliza (all/todos) os recursos ou permissões
    "Action": "s3:ListBucket", // Ação
    "Resource": "arn:aws:s3:::example_bucket" // Objetos que serão afetados pela política
  }
}

Outro exemplo, a política abaixo define que o usuário do IAM altere sua própria senha e obtenha informações sobre seu próprio usuário

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1689277490068",
      "Action": [
        "iam:ChangePassword",
        "iam:GetUser"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:iam::123456789012:user/${aws:username}"
    }
  ]
}

Exemplificação do AWS IAM

Regras gerais

Acesso programático

Para obter acesso programático a uma conta da AWS é necessário uma ID de chave de acesso e uma chave de acesso secreta que pode ser atribuída a um usuário

Segurança (AWS WAF e AWS Shield)

AWS WAF

AWS WAF

O AWS WAF (Web Application Firewall) é um firewall de aplicativos que permite especificar qual tráfego tem o acesso permito ou bloqueado, mediante a definição de regras personalizadas.

AWS Shield

AWS Shield

É usado pra mitigar (tratar) ataques DDos

O AWS Shield (Standard e Advanced) fornece proteção contra ataques DDoS (negação de serviço distribuído - Distributed Denial of Service) e nas camadas de transporte (camada 3 e 4) e na camada da aplicação (camada 7).

Um ataque DDos foca em vários sistemas sobrecarregar um alvo com tráfego.

Ataque DDoS

AWS Shield Standard

AWS Shield Advanced

Computação na AWS

É mais fácil e rápido de se gerenciar poder computacional e sendo um modelo na nuvem de infraestrutura como serviço.

Um servidor é o componente essencial para hospedar uma aplicação, geralmente lidando com solicitações HTTP através do modelo client-server. Os servidores hospedam a aplicação fornecendo capacidade de CPU, memória e rede para trabalhar com as solicitações. As opções mais comuns para servidores de HTTP (para Linux) é: Apache, Nginx e Apache Tomcat

Alguns dos serviços de Computação que a AWS oferece é: Elastic Beanstalk, AWS Lambda, AWS Fargate e o mais comum sendo as Máquinas Virtuais do EC2(EC2)

Elastic Compute Cloud - EC2

Elastic Compute Cloud

O Amazon Elastic Compute Cloud (EC2) é um serviço web que oferece capacidade computacional, sendo uma instância redimensionável (elástica) na AWS.

Você pode usar o EC2 com o Elastic Block Storage (EBS) para ter maior controle sobre o armazenamento da VM, que se por acaso a instância do EC2 for interrompida, o armazenamento não será perdido (bloco de volume /root), servindo como um HD externo

Tipos de Instâncias do EC2

Quando você executa uma instância EC2, a AWS aloca uma VM (que é executada em um hypervisor), e a AMI é copiada para o volume root da VM, contendo a imagem usada para iniciar o volume. Tendo no final o servidor, que você pode instalar pacotes ou softwares adicionais.

Tipos de Instâncias do EC2

Tipos de instâncias
Capacidades Adicionais (additional capabilities)
Tamanho das Instâncias (instance sizes)

Nomenclatura das Instâncias

Nomeação das instâncias do EC2

Bibliografia

Meaning of the number in AWS instance type name - Stack Overflow