Mapa da arquiteturaArchitecture map
Um caminho típico de uma requisição. Clique em cada peça para entender o papel dela. Cada seção abaixo traz os links da documentação oficial.A typical request path. Click each piece to understand its role. Each section below lists its official documentation links.
IAM
Identity and Access Management: o serviço que controla quem se autentica (login) e quem está autorizado (permissões) a usar os recursos da AWS.Identity and Access Management: the service that controls who is authenticated (signed in) and who is authorized (has permissions) to use AWS resources.
Root user
Identidade criada junto com a conta, com acesso total. A AWS recomenda não usá-la no dia a dia. Algumas tarefas exigem o root, e a documentação lista quais.The identity created with the account, with complete access. AWS recommends not using it for everyday tasks. A few tasks do require root, and the docs list them.User
Identidade com credenciais de longo prazo (senha, access keys). A AWS recomenda usá-lo só quando federação e roles não servem, por exemplo em ferramentas de terceiros que não suportam o IAM Identity Center.An identity with long-term credentials (password, access keys). AWS recommends it only when federation and roles do not fit, for example third-party tools that do not support IAM Identity Center.User Group
Coleção de usuários IAM: anexe a política ao grupo e todos herdam. Um usuário pode estar em vários grupos. Grupos não podem ser aninhados e não podem serPrincipal em uma política.A collection of IAM users: attach the policy to the group and everyone inherits it. A user can be in many groups. Groups cannot be nested and cannot be a Principal in a policy.Role
Identidade sem credenciais próprias de longo prazo, feita para ser assumida por quem precisar (pessoas, outras contas, serviços AWS ou IdPs externos). Ao assumir, você recebe credenciais temporárias da sessão.An identity with no long-term credentials of its own, meant to be assumed by whoever needs it (people, other accounts, AWS services or external IdPs). On assuming it, you get temporary session credentials.Fluxo comum com gruposCommon flow with groups
Anatomia de uma políticaAnatomy of a policy
Uma política é um documento JSON. Exemplo de permissão para enviar (push) imagens a um repositório do ECR, com placeholders no lugar de IDs reais:A policy is a JSON document. Example permission to push images to an ECR repository, with placeholders instead of real IDs:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ecr:GetAuthorizationToken",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ecr:BatchCheckLayerAvailability",
"ecr:InitiateLayerUpload",
"ecr:UploadLayerPart",
"ecr:CompleteLayerUpload",
"ecr:PutImage"
],
"Resource": "arn:aws:ecr:us-east-1:111122223333:repository/meu-repositorio"
}
]
}
| Campo / Field | SignificadoMeaning |
|---|---|
Version | Versão da linguagem de política. Os exemplos da AWS usam 2012-10-17.Policy language version. AWS examples use 2012-10-17. |
Effect | Allow ou Deny.Allow or Deny. |
Action | As operações da API do serviço. Normalmente é preciso listar várias ações.The service API operations. You usually need to list several actions. |
Resource | Sobre quais recursos vale, identificados pelo ARN (Amazon Resource Name).Which resources it covers, identified by ARN (Amazon Resource Name). |
Condition | Opcional. Restringe quando a permissão vale (ex.: exigir TLS, limitar a um IP).Optional. Restricts when the permission applies (e.g. require TLS, limit to an IP). |
Deny explícito (em política de identidade, SCP ou RCP) sobrepõe qualquer Allow. Em contas de uma organização, a permissão efetiva é a interseção entre as políticas IAM e as SCPs.
An explicit Deny (in an identity policy, SCP or RCP) overrides any Allow. In accounts of an organization, effective permission is the intersection of IAM policies and SCPs.
Quando usarWhen to use
Roles para serviços e CI/CD; grupos + políticas quando houver usuários IAM; Access Analyzer para revisar permissões.Roles for services and CI/CD; groups + policies when IAM users exist; Access Analyzer to review permissions.Quando evitarWhen to avoid
Usuário IAM com access key de longo prazo para pessoas ou para workloads que poderiam usar role; uso do root no dia a dia.IAM users with long-term access keys for people, or for workloads that could use a role; everyday use of root.Por que usar grupos em vez de políticas direto no usuário?Why use groups instead of attaching policies directly to users?
Qual a diferença entre User e Role?What is the difference between a User and a Role?
AWS Organizations
Gerencie e governe várias contas AWS de forma central: criar contas, agrupá-las em OUs, aplicar políticas e ter uma fatura única.Centrally manage and govern many AWS accounts: create accounts, group them into OUs, apply policies and get a single bill.
Management account
Conta que administra a organização. SCPs não afetam usuários e roles dela, só as contas-membro.The account that administers the organization. SCPs do not affect its users and roles, only member accounts.Member accounts
As demais contas. Cada conta AWS é um limite natural de permissão, segurança, custo e carga de trabalho.All other accounts. Each AWS account is a natural boundary for permissions, security, cost and workloads.OU
Organizational Unit: grupo de contas (por exemplo, as que atendem a uma aplicação ou a um ambiente). Políticas anexadas a uma OU valem para as contas dentro dela.Organizational Unit: a group of accounts (for example those serving one application or environment). Policies attached to an OU apply to the accounts inside it.SCP
Service Control Policy: define o máximo de permissões disponível para IAM users e roles das contas. Não concede nada.Service Control Policy: defines the maximum permissions available to IAM users and roles in the accounts. It grants nothing.Por que separar contas por ambienteWhy separate accounts by environment
A AWS recomenda usar várias contas para separar cargas de trabalho, em vez de uma só. Por padrão não existe acesso entre contas: se produção e não-produção ficam em contas distintas, elas permanecem isoladas até você liberar explicitamente. O número de contas não altera a cobrança, que é baseada no uso dos recursos.AWS recommends using several accounts to separate workloads rather than a single one. By default there is no access between accounts: if production and non-production live in different accounts, they stay isolated until you explicitly allow access. The number of accounts does not change billing, which is based on resource usage.
Exemplo de desenho (uma sugestão didática, não um padrão obrigatório da AWS):Example layout (a teaching suggestion, not a mandatory AWS standard):
<ID_CONTA_PROD> OU Non-prod
<ID_CONTA_STAGING> OU Shared
tooling: ECR, CI/CDtooling: ECR, CI/CD · <ID_CONTA_TOOLING>
A conta de tooling/compartilhada costuma guardar o que várias contas usam, como o repositório de imagens no ECR (acesso entre contas via repository policy).The tooling/shared account usually holds what several accounts use, such as the image repository in ECR (cross-account access through a repository policy).
Simulador de herança de SCPSCP inheritance simulator
Exemplo de SCPSCP example
Exemplo didático que nega ações fora de duas regiões, com exceção de serviços globais. Adapte e teste em uma OU de teste antes de usar. A AWS publica exemplos oficiais de SCP na página de exemplos de SCP.Teaching example denying actions outside two regions, except for global services. Adapt it and test it in a test OU first. AWS publishes official SCP examples in its SCP examples page.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"NotAction": ["iam:*", "organizations:*", "route53:*", "support:*"],
"Resource": "*",
"Condition": {
"StringNotEquals": { "aws:RequestedRegion": ["us-east-1", "sa-east-1"] }
}
}
]
}
- SCPs só existem em organizações com all features habilitado; no modo apenas de cobrança consolidada elas não estão disponíveis.SCPs exist only in organizations with all features enabled; they are not available with consolidated billing only.
- SCP nunca concede permissão. A permissão efetiva é a interseção entre SCP/RCP e as políticas de identidade e de recurso.An SCP never grants permission. Effective permission is the intersection of SCP/RCP and identity/resource policies.
- SCPs afetam também o root user das contas-membro, mas não afetam service-linked roles nem usuários de fora da organização.SCPs also affect member-account root users, but they do not affect service-linked roles or principals outside the organization.
- Não remova a
FullAWSAccesssem substituí-la: todas as ações das contas-membro falhariam.Do not removeFullAWSAccesswithout replacing it: all member-account actions would fail. - A AWS recomenda não anexar SCPs na raiz sem testar: use uma OU e mova as contas aos poucos.AWS recommends not attaching SCPs to the root without testing: use an OU and move accounts a few at a time.
- Todos os caracteres da SCP contam para o tamanho máximo (veja as cotas).Every character counts toward an SCP's maximum size (see the quotas).
Quando usarWhen to use
Mais de um ambiente ou time; necessidade de guardrails (regiões, serviços); fatura única; compartilhamento central de recursos.More than one environment or team; need for guardrails (regions, services); a single bill; central resource sharing.Quando evitarWhen to avoid
Aplicar SCP direto na raiz sem teste; esperar que SCP libere permissões; rodar cargas de trabalho na management account (ela não é limitada por SCP).Applying an SCP straight to the root without testing; expecting an SCP to grant permissions; running workloads in the management account (it is not limited by SCPs).Uma SCP que permite s3:* já dá acesso ao S3 aos usuários?Does an SCP that allows s3:* already give users S3 access?
Qual conta não é afetada por SCPs?Which account is not affected by SCPs?
- What is AWS Organizations?
- Service control policies (SCPs)
- Organizing Your AWS Environment Using Multiple Accounts
- IAM: Policy evaluation logic
Removido por falta de fonte oficial: a anotação sobre descontos por volume e compartilhamento de Savings Plans/Reservas na fatura consolidada. Consulte a documentação de billing antes de afirmar isso.Removed for lack of an official source: the note on volume discounts and Savings Plans/Reservations sharing under consolidated billing. Check the billing docs before claiming it.
IAM Identity Center
Login único (SSO) para a força de trabalho: pessoas entram uma vez e acessam várias contas AWS e aplicações, com credenciais temporárias.Single sign-on (SSO) for your workforce: people sign in once and reach many AWS accounts and applications, using temporary credentials.
O IAM Identity Center (antigo AWS Single Sign-On) conecta o seu provedor de identidade existente, sincronizando usuários e grupos, ou permite criar e gerenciar usuários direto nele. Para acesso a contas, a AWS o recomenda como forma de dar acesso a pessoas. Não há cobrança adicional pelo IAM Identity Center; você paga pelos recursos que usa.IAM Identity Center (formerly AWS Single Sign-On) connects your existing identity provider, syncing users and groups, or lets you create and manage users directly in it. For account access, AWS recommends it as the way to give access to people. There is no additional charge for IAM Identity Center; you pay for the resources you use.
Instância da organizaçãoOrganization instance
É a melhor prática e a única que permite gerenciar acesso a contas AWS. Fica na management account do Organizations.It is the best practice and the only one that lets you manage access to AWS accounts. It lives in the Organizations management account.Permission set
Modelo que reúne uma ou mais políticas IAM. Ao atribuí-lo a um usuário ou grupo em uma conta, o Identity Center cria e mantém uma role IAM nela e anexa as políticas.A template grouping one or more IAM policies. When you assign it to a user or group in an account, Identity Center creates and maintains an IAM role there and attaches the policies.Credenciais temporáriasTemporary credentials
A duração da sessão da conta vem do permission set (padrão de 1 hora, máximo de 12 horas). A sessão no portal tem outro limite (padrão de 8 horas, máximo de 90 dias).Account session length comes from the permission set (default 1 hour, maximum 12 hours). The portal session has its own limit (default 8 hours, maximum 90 days).Permission sets na práticaPermission sets in practice
- Permission sets exigem a instância da organização com multi-account permissions habilitado (padrão ao criar a instância).Permission sets require the organization instance with multi-account permissions enabled (default when the instance is created).
- Aceitam políticas gerenciadas pela AWS, gerenciadas pelo cliente, inline e de função de trabalho, além de uma permissions boundary.They accept AWS managed, customer managed, inline and job-function policies, plus a permissions boundary.
- Você pode atribuir mais de um permission set à mesma pessoa. A documentação recomenda escolher, no portal, o mais restritivo que resolve a tarefa, em vez de sempre usar administrador.You can assign more than one permission set to the same person. The docs recommend choosing, in the portal, the most restrictive one that does the job rather than always using admin.
- Exemplo da documentação:
PowerUserAccessnão permite gerenciar usuários e grupos IAM, ao contrário deAdministratorAccess.Docs example:PowerUserAccessdoes not allow managing IAM users and groups, unlikeAdministratorAccess. - Precisa de recursos além do que permission sets oferecem (trust policy customizada, tags de role)? Veja o account access manager do IAM.Need more than permission sets offer (custom trust policy, role tags)? See IAM's account access manager.
Uso no terminalUsing it in the terminal
aws configure sso # cria o perfil (sso-session, conta e permission set)
aws sso login --profile meu-perfil
aws sts get-caller-identity --profile meu-perfil
aws sso logout
Quando as credenciais do SSO expiram, é preciso fazer login de novo. Veja também a seção AWS CLI.When SSO credentials expire you must sign in again. See also the AWS CLI section.
Quando usarWhen to use
Pessoas que acessam várias contas (staging, prod, tooling); quando se quer um único ponto de login e permissões centralizadas por perfil de trabalho.People who access several accounts (staging, prod, tooling); when you want a single sign-in point and permissions centralized per job role.Quando evitarWhen to avoid
Para pipelines de CI/CD e workloads (use roles com OIDC); instâncias de conta para gerenciar acesso a várias contas (só a instância da organização faz isso).For CI/CD pipelines and workloads (use roles with OIDC); account instances to manage access across accounts (only the organization instance does that).O que o Identity Center cria na conta quando você atribui um permission set?What does Identity Center create in the account when you assign a permission set?
OIDC & GitHub Actions
Federação OIDC: um serviço externo (como o GitHub Actions) prova quem é com um token e troca por credenciais temporárias da AWS, sem guardar access keys.OIDC federation: an external service (such as GitHub Actions) proves who it is with a token and exchanges it for temporary AWS credentials, with no stored access keys.
A AWS recomenda não guardar credenciais de longo prazo em aplicações fora da AWS. Com OIDC, o provedor emite um JSON Web Token (JWT); a AWS valida o token e devolve credenciais temporárias de uma role IAM. A operação da API é AssumeRoleWithWebIdentity (AWS STS).AWS recommends not storing long-term credentials in applications outside AWS. With OIDC, the provider issues a JSON Web Token (JWT); AWS validates it and returns temporary credentials for an IAM role. The API operation is AssumeRoleWithWebIdentity (AWS STS).
1 · Criar o provedor OIDC no IAM1 · Create the OIDC provider in IAM
- A URL do provedor começa com
https://, não tem porta e não tem query string. É sensível a maiúsculas e deve ser única na conta. Para o GitHub Actions:https://token.actions.githubusercontent.com.The provider URL starts withhttps://, has no port and no query string. It is case-sensitive and must be unique in the account. For GitHub Actions:https://token.actions.githubusercontent.com. - O campo Audience (
aud) deve bater com o valor que o provedor coloca no token. Para o GitHub Actions no console, ésts.amazonaws.com.The Audience (aud) must match the value the provider puts in the token. For GitHub Actions in the console, it issts.amazonaws.com. - A AWS verifica o certificado do endpoint JWKS com sua biblioteca de CAs confiáveis; thumbprints só entram como alternativa quando o certificado não é de uma CA conhecida.AWS verifies the JWKS endpoint certificate against its library of trusted CAs; thumbprints are only a fallback when the certificate is not from a known CA.
- O provedor OIDC usado na trust policy precisa estar na mesma conta da role.The OIDC provider used in a trust policy must be in the same account as the role.
2 · Trust policy da role2 · The role's trust policy
O GitHub é um provedor OIDC compartilhado entre muitos clientes. Por isso o IAM exige que a trust policy avalie a condição token.actions.githubusercontent.com:sub, e o valor não pode ser só um curinga. Sem essa restrição, workflows de repositórios fora do seu controle poderiam assumir a role. Exemplo restrito a um repositório e uma branch:GitHub is an OIDC provider shared across many customers. So IAM requires the trust policy to evaluate the condition token.actions.githubusercontent.com:sub, and the value cannot be only a wildcard. Without that restriction, workflows from repositories outside your control could assume the role. Example limited to one repository and one branch:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::111122223333:oidc-provider/token.actions.githubusercontent.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"token.actions.githubusercontent.com:aud": "sts.amazonaws.com",
"token.actions.githubusercontent.com:sub": "repo:MINHA_ORG/MEU_REPO:ref:refs/heads/main"
}
}
}
]
}
O claim sub do GitHubThe GitHub sub claim
| Contexto do jobJob context | sub |
|---|---|
| BranchBranch | repo:ORG/REPO:ref:refs/heads/BRANCH |
| Tag | repo:ORG/REPO:ref:refs/tags/TAG |
| Environment | repo:ORG/REPO:environment:NOME |
| Pull request | repo:ORG/REPO:pull_request |
- Se o job referencia um environment, o
subusa o formato de environment (ele tem prioridade). Pull request só aparece quando não há environment. Branch e tag valem quando não há environment nem pull request.If the job references an environment, thesubuses the environment format (it takes priority). Pull request only appears when there is no environment. Branch and tag apply when there is neither environment nor pull request. - Para restringir repositório, use
StringLikecomrepo:ORG/REPO:*. Para branch, use o valor exato da branch. Para environment, userepo:ORG/REPO:environment:producaoe proteja o environment com regras de deploy (quais branches e tags podem fazer deploy nele), como a AWS e o GitHub recomendam.To restrict the repository, useStringLikewithrepo:ORG/REPO:*. For a branch, use the exact branch value. For an environment, userepo:ORG/REPO:environment:productionand protect the environment with deployment rules (which branches and tags may deploy to it), as AWS and GitHub recommend. - Repositórios novos podem emitir o formato imutável, que inclui IDs:
repo:ORG@ORG_ID/REPO@REPO_ID:.... A documentação da action avisa que, se a trust policy usa o formato antigo e o repositório emite o novo, o assume-role falha com "Not authorized". Confira o formato que o seu repositório emite.New repositories may issue the immutable format, which includes IDs:repo:ORG@ORG_ID/REPO@REPO_ID:.... The action's docs warn that if the trust policy uses the old format and the repository issues the new one, assume-role fails with "Not authorized". Check which format your repository issues. - Dois-pontos dentro de valores aparecem como
%3Anosub.Colons inside values appear as%3Ain thesub.
3 · Workflow com aws-actions/configure-aws-credentials3 · Workflow with aws-actions/configure-aws-credentials
permissions:
id-token: write # permite ao job pedir o JWT
jobs:
deploy:
runs-on: ubuntu-latest
environment: producao
steps:
- uses: aws-actions/configure-aws-credentials@v6 # fixe uma versão/SHA
with:
role-to-assume: arn:aws:iam::111122223333:role/github-deploy-prod
aws-region: us-east-1
- run: aws sts get-caller-identity
A região é sempre obrigatória na action. Ela também tem recomendações próprias: menor privilégio na role, cuidado com pull_request_target e com runners não efêmeros, e evitar ForAllValues: em statements Allow.The region is always required by the action. It also has its own advice: least privilege on the role, care with pull_request_target and non-ephemeral runners, and avoid ForAllValues: in Allow statements.
- Uma role por ambiente (staging, prod) e, idealmente, cada uma na sua própria conta, com
subdiferente.One role per environment (staging, prod) and ideally each in its own account, with a differentsub. - A trust policy de uma role OIDC só pode ter um tipo de provedor; para vários IdPs, crie uma role para cada.An OIDC role's trust policy supports only one provider; for several IdPs, create one role each.
- O IAM aceita o token por até 5 minutos além do
exp, por causa de diferença de relógio.IAM accepts the token up to 5 minutes past itsexp, to allow for clock skew.
Quando usarWhen to use
CI/CD que precisa chamar a AWS (push no ECR, deploy no ECS, sync no S3) sem access keys guardadas como secret.CI/CD that needs to call AWS (ECR push, ECS deploy, S3 sync) without access keys stored as secrets.Quando evitarWhen to avoid
Trust policy comsub aberto (ex.: repo:ORG/* em produção); pessoas fazendo login (prefira Identity Center).A trust policy with an open sub (e.g. repo:ORG/* in production); people signing in (prefer Identity Center).Por que a condição em sub é obrigatória para o GitHub?Why is the sub condition mandatory for GitHub?
Que permissão o job precisa para pedir o token?What permission does the job need to request the token?
permissions: id-token: write.permissions: id-token: write.- OIDC federation (IAM)
- Create an OpenID Connect (OIDC) identity provider in IAM
- Create a role for OpenID Connect federation (inclui a seção sobre GitHub)
- Identity-provider controls for shared OIDC providers
- aws-actions/configure-aws-credentials (repositório oficial da action)
- GitHub Docs: OpenID Connect reference (formatos de sub)
Os formatos de sub e o comportamento do GitHub vêm da documentação do GitHub, não da AWS. Revise-os na fonte antes de aplicar em produção.The sub formats and GitHub behavior come from GitHub's docs, not AWS. Review them at the source before applying to production.
AWS CLI (Linux)
Controle serviços da AWS pela linha de comando. Esta página usa a versão 2 do AWS CLI.Control AWS services from the command line. This page covers AWS CLI version 2.
InstalarInstall
O script de instalação é o método recomendado pela documentação. Por padrão ele instala só para o usuário atual, em $HOME/.local. O método com sudo e --system instala para todos.The install script is the method the docs recommend. By default it installs for the current user only, under $HOME/.local. The sudo + --system form installs for everyone.
curl -fsSL https://awscli.amazonaws.com/v2/install.sh | bash
aws --version
snap. No Amazon Linux, remova antes o pacote awscli do yum se quiser a versão mais recente.
Piping a downloaded script into the shell is your call. The docs also offer the .zip installer, with optional GPG signature verification, and a snap package. On Amazon Linux, first remove the yum awscli package if you want the latest version.
Atualizar e removerUpdate and remove
aws update
Em instalações feitas pelo script ou pelos instaladores oficiais, o comando acima atualiza o CLI. Se foi instalado para todos os usuários, rode-o com sudo. Para desinstalar, siga a página oficial de desinstalação (link abaixo).For installs done with the script or the official installers, the command above updates the CLI. If it was installed for all users, run it with sudo. To uninstall, follow the official uninstall page (link below).
--update e removia arquivos à mão. A documentação atual traz o comando aws update. Os passos manuais de remoção foram trocados por link para a página oficial.
The old note said to repeat the install command with --update and removed files by hand. The current docs have the aws update command. The manual removal steps were replaced by a link to the official page.
Quem sou eu? e loginWho am I? and login
aws sts get-caller-identity --profile meu-perfil
Mostra a identidade (conta e ARN) das credenciais em uso. Para pessoas, configure o login com IAM Identity Center (aws configure sso e aws sso login).Shows the identity (account and ARN) of the credentials in use. For people, set up sign-in with IAM Identity Center (aws configure sso and aws sso login).
ECR — autenticação com um token temporário (válido por 12 horas) para o Docker:authentication with a temporary token (valid for 12 hours) for Docker:
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com
Quando usarWhen to use
Automação, scripts, diagnóstico rápido e tarefas repetíveis que o console não resolve bem.Automation, scripts, quick diagnostics and repeatable tasks the console does not handle well.- Installing or updating to the latest version of the AWS CLI
- Uninstalling the AWS CLI version 2 (referenciada pela página de instalação; não lida integralmentereferenced by the install page; not read in full)
- Configuring IAM Identity Center authentication with the AWS CLI
- ECR: Pushing a Docker image
SSH (Secure Shell)
Forma clássica de abrir um terminal remoto em uma instância EC2 Linux, usando um par de chaves.The classic way to open a remote terminal on a Linux EC2 instance, using a key pair.
Pré-requisitos segundo a documentação da EC2Prerequisites per the EC2 docs
- A instância passou nas status checks (pode levar alguns minutos).The instance passed its status checks (it can take a few minutes).
- Você tem a chave privada (
.pem) do key pair e as permissões do arquivo configuradas (a página de pré-requisitos da EC2 detalha isso).You have the key pair's private key (.pem) with file permissions set (the EC2 prerequisites page explains this). - O Security Group da instância libera SSH (porta 22) só do seu IP. Abrir 22 para
0.0.0.0/0deixa qualquer um tentar entrar.The instance's Security Group allows SSH (port 22) only from your IP. Opening 22 to0.0.0.0/0lets anyone try.
ConectarConnect
ssh -i /caminho/minha-chave.pem usuario-da-instancia@dns-publico-da-instancia
No primeiro acesso, o SSH mostra a impressão digital (fingerprint) do servidor. A documentação sugere conferi-la com a da instância: se não bater, pode ser um ataque man-in-the-middle.On first connection SSH shows the server fingerprint. The docs suggest checking it against the instance's: if it does not match, it may be a man-in-the-middle attack.
chmod 400 na chave e o usuário padrão ec2-user no Amazon Linux.
The explanations below (handshake and TCP/IP layers) are general teaching content about the SSH protocol, kept from the original notes. They do not come from AWS documentation and were not verified there. Also left as personal notes: chmod 400 on the key and the default ec2-user on Amazon Linux.
Handshake passo a passoHandshake step by step
Protocolos e TCP/IPProtocols and TCP/IP
Um protocolo é um contrato: regras de como os dados são formatados, transmitidos e recebidos. O SSH é da camada de Aplicação e roda sobre TCP/IP.A protocol is a contract: rules for how data is formatted, sent and received. SSH is an Application-layer protocol running on top of TCP/IP.
| CamadaLayer | FunçãoRole |
|---|---|
| 4 · AplicaçãoApplication | Onde os programas trabalham: SSH, SMTP, HTTP.Where programs work: SSH, SMTP, HTTP. |
| 3 · Transporte (TCP)Transport (TCP) | Abre a conexão e garante que todos os pedaços cheguem sem erros.Opens the connection and ensures every piece arrives without errors. |
| 2 · Internet (IP)Internet (IP) | Endereçamento: garante que os pacotes cheguem ao destino.Addressing: ensures packets reach their destination. |
| 1 · Link | Meio físico: cabos ethernet, wi-fi.Physical medium: ethernet cables, wi-fi. |
Quando usarWhen to use
Depuração pontual em instâncias de teste, com porta 22 restrita ao seu IP.Occasional debugging on test instances, with port 22 limited to your IP.Quando evitarWhen to avoid
Porta 22 aberta para a internet; acesso rotineiro em produção (prefira Session Manager).Port 22 open to the internet; routine production access (prefer Session Manager).De onde deve vir o tráfego SSH liberado no Security Group?Where should the SSH traffic allowed in the Security Group come from?
0.0.0.0/0.From your specific IP (or range), never 0.0.0.0/0.EC2 & Auto Scaling
Amazon EC2 entrega servidores virtuais na nuvem. O Auto Scaling mantém a quantidade certa de instâncias para a sua carga.Amazon EC2 provides virtual servers in the cloud. Auto Scaling keeps the right number of instances for your load.
AMI
Amazon Machine Image: fornece o software para iniciar a instância e um mapeamento de dispositivos de bloco (os discos a anexar). É específica de Region, sistema operacional, arquitetura de processador, tipo de volume raiz e tipo de virtualização. Dá para copiar para outra Region e compartilhar com outras contas.Amazon Machine Image: provides the software to boot the instance and a block device mapping (the disks to attach). It is specific to Region, operating system, processor architecture, root volume type and virtualization type. You can copy it to another Region and share it with other accounts.Instance type
Define o hardware (CPU, memória, armazenamento, rede). Os tipos são agrupados em famílias; os nomes seguem uma convenção (família, geração, processador, capacidades, tamanho). Há instâncias burstable (como a série T). Como o faturamento é por segundo, é barato testar vários tipos.Defines the hardware (CPU, memory, storage, network). Types are grouped into families; names follow a convention (family, generation, processor, capabilities, size). There are burstable instances (such as the T series). Since billing is per second, testing several types is cheap.Public IPv4
O IP público automático vem do pool da Amazon e não é seu: é liberado ao parar, hibernar ou encerrar, e a instância recebe outro ao iniciar de novo. Para um endereço fixo, use Elastic IP. A AWS cobra por todo IPv4 público.The automatic public IP comes from Amazon's pool and is not yours: it is released on stop, hibernate or terminate, and the instance gets a new one on start. For a fixed address use an Elastic IP. AWS charges for every public IPv4 address.Snapshot vs. ImagemImage
| Snapshot (EBS) | Imagem (AMI)Image (AMI) | |
|---|---|---|
| O que éWhat it is | Cópia pontual (point-in-time) de um volume EBS, incremental: guarda só os blocos alterados desde o último snapshot.A point-in-time copy of an EBS volume, incremental: it stores only the blocks changed since the last snapshot. | Software de boot + mapeamento de discos, usado para lançar instâncias.Boot software + disk mapping, used to launch instances. |
| UsoUse | Backup e restauração: cria um volume novo idêntico ao original no momento do snapshot.Backup and restore: creates a new volume identical to the original at snapshot time. | Clonar a configuração de uma instância: lançar várias com a mesma base.Cloning an instance's setup: launch many from the same base. |
| Onde ficaWhere it lives | Em buckets do S3 que você não acessa diretamente; replicado entre as AZs da Region.In S3 buckets you cannot access directly; replicated across the Region's AZs. | Dentro da Region; pode ser copiada e compartilhada.Within a Region; can be copied and shared. |
Launch Template
Especifica a configuração de uma instância: ID da AMI, tipo de instância, key pair, security groups e outros parâmetros. Tem versões: dá para manter uma base e criar versões novas (por exemplo, com a AMI da última versão da aplicação). A AWS recomenda launch templates em vez de launch configurations, que não suportam recursos como misturar Spot e On-Demand ou vários tipos de instância.Specifies an instance's configuration: AMI ID, instance type, key pair, security groups and other parameters. It has versions: you can keep a base and create new versions (for example with the AMI of the latest app version). AWS recommends launch templates over launch configurations, which lack features such as mixing Spot and On-Demand or multiple instance types.
Auto Scaling Group (ASG)
Coleção de instâncias tratada como uma unidade. Você define:A collection of instances treated as one unit. You define:
- Minimum size: o grupo nunca fica abaixo disso.the group never goes below it.
- Maximum size: o grupo nunca passa disso.the group never exceeds it.
- Desired capacity: quantas instâncias você quer rodando agora (dentro do mínimo e máximo).how many instances you want running now (within the min and max).
Não há cobrança adicional pelo Auto Scaling; você paga pelos recursos usados (instâncias, volumes EBS, alarmes do CloudWatch).There is no additional charge for Auto Scaling; you pay for the resources used (instances, EBS volumes, CloudWatch alarms).
Scaling policies
Target tracking
Escolhe uma métrica e um valor-alvo, como um termostato. Recomendada pela AWS; use métricas que variem de forma inversamente proporcional à capacidade (CPU média, requisições por target). O Auto Scaling cria os alarmes do CloudWatch por você.Pick a metric and a target value, like a thermostat. Recommended by AWS; use metrics that move inversely with capacity (average CPU, request count per target). Auto Scaling creates the CloudWatch alarms for you.Step / simple
Ajustes por faixa de violação do alarme (step) ou um único ajuste com cooldown (simple). Cuidado ao combinar com target tracking: conflitos podem causar comportamento indesejado.Adjustments by alarm-breach size (step) or one adjustment with a cooldown (simple). Be careful combining with target tracking: conflicts can cause unwanted behavior.Scheduled
Ações agendadas mudam a capacidade em horários definidos (única ou recorrente, com cron e fuso horário). Bom para picos previsíveis.Scheduled actions change capacity at set times (one-off or recurring, with cron and time zone). Good for predictable peaks.Predictive
Analisa a carga histórica para achar padrões diários ou semanais e prever a demanda, lançando capacidade antes do pico. Indicado para tráfego cíclico e aplicações lentas para iniciar.Analyzes historical load to detect daily or weekly patterns and forecast demand, launching capacity ahead of the peak. Suited to cyclical traffic and slow-starting apps.Sempre dentro do mínimo e do máximo do grupo. Se mais de uma política pedir mudança ao mesmo tempo, prevalece a que resulta em mais capacidade.Always within the group's min and max. If more than one policy asks for a change at once, the one giving the most capacity wins.
Quando usarWhen to use
Aplicação com carga variável ou que precisa se recuperar sozinha de falhas; servidores idênticos atrás de um load balancer.Apps with variable load or that must self-heal from failures; identical servers behind a load balancer.O IP público automático de uma instância continua o mesmo depois de parar e iniciar?Does an instance's automatic public IP stay the same after stop and start?
O que o ASG faz com uma instância comprometida?What does the ASG do with an impaired instance?
- Amazon EC2 instance types
- Amazon Machine Images in Amazon EC2
- Amazon EC2 instance IP addressing
- Amazon EBS snapshots
- What is Amazon EC2 Auto Scaling?
- Auto Scaling launch templates
- Dynamic scaling · Scheduled scaling · Predictive scaling
Corrigido: a anotação antiga citava "t4.micro" como família; a documentação lida lista a série T4g (e T3), então os exemplos de tipos foram removidos. Valores como "launch template é gratuito" e o "CPU ou memória" no target tracking também saíram por falta de suporte nas páginas lidas.Corrected: the old note cited "t4.micro" as a family; the docs read list the T4g series (and T3), so type examples were removed. Claims like "launch templates are free" and "CPU or memory" for target tracking also left for lack of support in the pages read.
IPs ElásticosElastic IPs
Um endereço IPv4 público e estático, pensado para a computação em nuvem dinâmica.A static public IPv4 address designed for dynamic cloud computing.
O Elastic IP é alocado à sua conta e é seu até você liberá-lo. Você pode "mascarar" a falha de uma instância remapeando o endereço para outra instância da conta, ou usá-lo em um registro DNS do seu domínio.An Elastic IP is allocated to your account and stays yours until you release it. You can mask an instance failure by remapping the address to another instance in your account, or use it in a DNS record for your domain.
- É específico de uma Region e não pode ser movido para outra. Não há Elastic IP para IPv6.It is specific to one Region and cannot be moved to another. There are no Elastic IPs for IPv6.
- Ao associar um Elastic IP a uma instância que já tinha IP público automático, esse IP automático é liberado e não pode ser reaproveitado.When you associate an Elastic IP with an instance that had an automatic public IP, that automatic IP is released and cannot be reused.
- Um Elastic IP desassociado continua alocado (e cobrado) até você liberá-lo.A disassociated Elastic IP stays allocated (and billed) until you release it.
- Há uma cota padrão de Elastic IPs por Region, que pode ser aumentada no Service Quotas. Consulte a página oficial para o valor atual.There is a default quota of Elastic IPs per Region, which can be raised in Service Quotas. See the official page for the current value.
A documentação ainda sugere reduzir o número de IPv4 públicos usando um load balancer na frente das instâncias, desligando o "auto-assign public IP" onde não for preciso.The docs also suggest reducing the number of public IPv4 addresses by putting a load balancer in front of the instances and turning off "auto-assign public IP" where not needed.
Quando usarWhen to use
Endereço fixo que precisa sobreviver à troca de instância e que alguém registra (DNS, allowlist de um parceiro).A fixed address that must survive an instance swap and that someone registers (DNS, a partner's allowlist).ECR
Elastic Container Registry: registro gerenciado de imagens de container (Docker, OCI) dentro da AWS, com permissões via IAM.Elastic Container Registry: a managed registry for container images (Docker, OCI) inside AWS, with permissions through IAM.
Repository
Repositório privado com permissões baseadas em recurso. Ele precisa existir antes do push, ou você precisa de um repository creation template.A private repository with resource-based permissions. It must exist before the push, or you need a repository creation template.Auth
O token de autenticação vale 12 horas e é por registry. Nodocker login o usuário é AWS. A identidade precisa da permissão ecr:GetAuthorizationToken via política IAM.The authentication token is valid for 12 hours and is per registry. In docker login the user is AWS. The identity needs ecr:GetAuthorizationToken via an IAM policy.RecursosFeatures
Lifecycle policies (limpeza de imagens), scan de vulnerabilidades no push, replicação entre Regions e contas, pull through cache e assinatura gerenciada.Lifecycle policies (image cleanup), vulnerability scan on push, replication across Regions and accounts, pull through cache and managed signing.Push passo a passoPush step by step
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-east-1.amazonaws.com
docker tag minha-app:1.4.2 111122223333.dkr.ecr.us-east-1.amazonaws.com/minha-app:1.4.2
docker push 111122223333.dkr.ecr.us-east-1.amazonaws.com/minha-app:1.4.2
Se você omitir a tag no docker tag, a tag assumida é latest.If you omit the tag in docker tag, the assumed tag is latest.
Acesso entre contas (repository policy)Cross-account access (repository policy)
Para a conta de tooling guardar as imagens e as contas de staging e produção baixarem, anexe uma repository policy ao repositório. Exemplo de pull para uma conta (placeholder no lugar do ID real):For the tooling account to hold the images and the staging and production accounts to pull them, attach a repository policy to the repository. Example pull access for one account (placeholder instead of the real ID):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowPullFromProd",
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::<ID_CONTA_PROD>:root" },
"Action": [
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
]
}
]
}
- O ECR exige que quem autentica tenha
ecr:GetAuthorizationTokenpor política IAM antes de qualquer push ou pull. Essa permissão não vem da repository policy.ECR requires the caller to haveecr:GetAuthorizationTokenthrough an IAM policy before any push or pull. That permission does not come from the repository policy. - A conta que recebe a permissão precisa ter a Region do repositório habilitada, senão a criação da policy dá erro.The account being granted access must have the repository's Region enabled, otherwise creating the policy fails.
- Para ações de push, a documentação inclui também
BatchCheckLayerAvailability,InitiateLayerUpload,UploadLayerPart,CompleteLayerUploadePutImage.For push, the docs also includeBatchCheckLayerAvailability,InitiateLayerUpload,UploadLayerPart,CompleteLayerUploadandPutImage.
Tags e digestsTags and digests
- Tag mutável: o mesmo nome de tag pode ser sobrescrito por um novo push. Com tag immutability ligada, repetir uma tag retorna
ImageTagAlreadyExistsException. A imutabilidade vale para todas as tags (com filtros de exceção opcionais).Mutable tags: the same tag name can be overwritten by a new push. With tag immutability on, reusing a tag returnsImageTagAlreadyExistsException. Immutability covers all tags (with optional exclusion filters). - O ECS, por padrão, resolve a tag da task definition para o digest da imagem no momento do deploy e usa o digest nas demais tarefas, para que todas rodem exatamente a mesma imagem. Veja ECS.By default ECS resolves the task definition's tag to the image digest at deploy time and uses the digest for the other tasks, so all of them run exactly the same image. See ECS.
latest. A ideia combina com a tag immutability, mas a recomendação em si não foi lida na documentação.
A design habit: use tags that identify the version (for example the commit hash) instead of latest. It pairs well with tag immutability, but the recommendation itself was not read in the docs.
Quando usarWhen to use
Imagens que rodam em ECS, EKS ou EC2 na AWS; repositório central em uma conta de tooling compartilhado entre ambientes.Images that run on ECS, EKS or EC2 in AWS; a central repository in a tooling account shared across environments.Quando evitarWhen to avoid
Repository policy comPrincipal: "*" sem condição; tags mutáveis em produção quando você precisa saber exatamente qual imagem rodou; acumular imagens sem lifecycle policy.A repository policy with Principal: "*" and no condition; mutable tags in production when you must know exactly which image ran; piling up images with no lifecycle policy.ECS
Amazon Elastic Container Service: orquestrador totalmente gerenciado para implantar, gerenciar e escalar aplicações em containers.Amazon Elastic Container Service: a fully managed orchestrator to deploy, manage and scale containerized applications.
Task definition
O "projeto" da aplicação: quais containers rodam e como.The application's "blueprint": which containers run and how.Cluster
A infraestrutura onde a aplicação roda.The infrastructure the application runs on.Task
Uma execução da aplicação, como um job em lote que trabalha e termina.One run of the application, like a batch job that works and stops.Service
Aplicação de longa duração e sem estado: o ECS mantém o número desejado de tasks rodando e faz os deploys.A long-running stateless application: ECS keeps the desired number of tasks running and performs deployments.Capacidade (onde os containers rodam): Fargate (serverless, sem gerenciar servidores), instâncias EC2 que você gerencia, ECS Managed Instances (EC2 com a infraestrutura gerenciada pela AWS) ou servidores externos com ECS Anywhere. O custo depende da capacidade escolhida; veja as páginas de preços do ECS e do Fargate.Capacity (where containers run): Fargate (serverless, no servers to manage), EC2 instances you manage, ECS Managed Instances (EC2 with AWS-managed infrastructure) or external servers with ECS Anywhere. Cost depends on the chosen capacity; see the ECS and Fargate pricing pages.
Deploy com rolling updateRolling update deployment
No tipo de deploy rolling update, o scheduler do ECS substitui as tasks em execução por tasks novas. Dois parâmetros do serviço controlam o ritmo:With the rolling update deployment type, the ECS scheduler replaces running tasks with new ones. Two service parameters control the pace:
| ParâmetroParameter | SignificadoMeaning | Exemplo da documentaçãoDocs example |
|---|---|---|
minimumHealthyPercent | Mínimo de tasks saudáveis durante o deploy, em % do desejado (arredonda para cima).Minimum healthy tasks during the deployment, as a % of desired (rounded up). | 50% com 4 tasks: pode parar 2 antes de iniciar 2 novas.50% with 4 tasks: it can stop 2 before starting 2 new ones. |
maximumPercent | Máximo de tasks em execução durante o deploy, em % do desejado (arredonda para baixo).Maximum running tasks during the deployment, as a % of desired (rounded down). | 200% com 4 tasks: pode iniciar 4 novas antes de parar as 4 antigas.200% with 4 tasks: it can start 4 new ones before stopping the 4 old ones. |
- Garanta que o scheduler consiga parar ou iniciar pelo menos uma task no deploy. Com 75% mínimo e 2 tasks, nada pode ser parado e o deploy trava.Make sure the scheduler can stop or start at least one task during a deployment. With 75% minimum and 2 tasks, nothing can be stopped and the deployment gets stuck.
- Para detectar falha rápido, use o deployment circuit breaker (falha quando as tasks não conseguem iniciar) e/ou alarmes do CloudWatch (falha por métricas da aplicação). Ambos suportam rollback para a revisão anterior do serviço.To detect failure fast, use the deployment circuit breaker (fails when tasks cannot start) and/or CloudWatch alarms (fails on application metrics). Both support rollback to the previous service revision.
- O ECS resolve a tag da imagem para o digest no início do deploy e usa o digest nas outras tasks, garantindo a mesma imagem em todas. Para pegar um digest atualizado, force um novo deploy (
forceNewDeployment).ECS resolves the image tag to the digest at the start of the deployment and uses the digest for the other tasks, ensuring the same image everywhere. To pick up an updated digest, force a new deployment (forceNewDeployment). - Variáveis de ambiente vindas do Parameter Store são resolvidas quando a task inicia: uma task em execução só vê o valor novo após um novo deploy. Veja Systems Manager e Secrets Manager.Environment variables from Parameter Store are resolved when the task starts: a running task only sees the new value after a new deployment. See Systems Manager and Secrets Manager.
aws ecs update-service --cluster meu-cluster --service minha-api --force-new-deployment
Com o load balancerWith the load balancer
O ALB consegue registrar tasks do ECS em um target group, inclusive escolhendo uma porta livre quando a task é agendada. Os health checks do target group definem se a task está saudável. Veja Load Balancer.The ALB can register ECS tasks in a target group, even choosing an unused port when the task is scheduled. The target group's health checks decide whether a task is healthy. See Load Balancer.
Quando usarWhen to use
Aplicações em containers que precisam de deploy repetível, rollback e escala sem operar um plano de controle próprio.Containerized apps needing repeatable deploys, rollback and scaling without running your own control plane.Quando evitarWhen to avoid
Cargas que não são containers;minimumHealthyPercent/maximumPercent que impedem qualquer substituição; esperar que um valor mudado no Parameter Store apareça em tasks já rodando.Non-container workloads; minimumHealthyPercent/maximumPercent values that block any replacement; expecting a changed Parameter Store value to show up in running tasks.Qual a diferença entre task e service?What is the difference between a task and a service?
Como garantir que um deploy com problema volte sozinho?How do you make a bad deployment roll back by itself?
VPC
Amazon Virtual Private Cloud: uma rede virtual logicamente isolada, parecida com a de um data center tradicional, onde você lança seus recursos AWS.Amazon Virtual Private Cloud: a logically isolated virtual network, similar to a traditional data center network, where you launch your AWS resources.
ALB · NAT Gateway
Aplicação (ECS/EC2)Application (ECS/EC2)
Banco de dados (RDS)Database (RDS)
ALB · NAT Gateway
Aplicação (ECS/EC2)Application (ECS/EC2)
Banco de dados (RDS)Database (RDS)
Os blocos CIDR acima são apenas um exemplo didático de desenho; a AWS não define um padrão obrigatório.The CIDR blocks above are only a teaching example of a layout; AWS does not mandate a standard.
Peças principaisMain pieces
- Subnet: faixa de IPs da VPC que fica em uma única zona de disponibilidade.a range of VPC IP addresses living in a single Availability Zone.
- Route table: conjunto de rotas (destino + alvo) que decide para onde vai o tráfego de uma subnet ou gateway. Todo VPC nasce com uma main route table, e você pode criar outras.a set of routes (destination + target) deciding where a subnet's or gateway's traffic goes. Every VPC starts with a main route table, and you can create more.
- Internet gateway: conecta a VPC à internet.connects the VPC to the internet.
- NAT gateway, VPC endpoint, peering, transit gateway, VPN, Flow Logs completam o quadro (veja abaixo e na página oficial).complete the picture (see below and the official page).
- Cada Region já tem uma VPC default, pronta para uso. Não há cobrança pela VPC em si, mas há por alguns componentes, como NAT gateways e IPv4 públicos.Each Region already has a default VPC, ready to use. There is no charge for the VPC itself, but there is for some components, such as NAT gateways and public IPv4 addresses.
Subnets e CIDRSubnets and CIDR
O bloco de uma subnet pode ser igual ao da VPC (uma subnet só) ou parte dele. Subnets da mesma VPC não podem se sobrepor. O tamanho permitido para IPv4 vai de /28 a /16. Em cada subnet, os quatro primeiros IPs e o último não estão disponíveis (rede, roteador da VPC, DNS, uso futuro e broadcast): são 5 reservados.A subnet's block can equal the VPC's (a single subnet) or be part of it. Subnets in the same VPC cannot overlap. The allowed IPv4 size ranges from /28 to /16. In each subnet, the first four IPs and the last one are unavailable (network, VPC router, DNS, future use and broadcast): that is 5 reserved.
Subnets públicas e privadasPublic and private subnets
PúblicaPublic
A route table tem uma rota para o internet gateway. Abriga o que precisa ser alcançado de fora: load balancer e NAT gateway.The route table has a route to the internet gateway. Home to what must be reached from outside: the load balancer and the NAT gateway.PrivadaPrivate
Sem rota para o internet gateway. Para sair para a internet, usa um NAT gateway; para falar com serviços AWS, pode usar VPC endpoints. Boa para aplicação e banco de dados.No route to the internet gateway. To reach the internet it uses a NAT gateway; to talk to AWS services it can use VPC endpoints. Good for application and database.| Route tableRoute table | Destination | Target |
|---|---|---|
| Subnet públicaPublic subnet | 10.0.0.0/16 | local |
| Subnet públicaPublic subnet | 0.0.0.0/0 | igw-… |
| Subnet privadaPrivate subnet | 10.0.0.0/16 | local |
| Subnet privadaPrivate subnet | 0.0.0.0/0 | nat-… |
A rota local permite que as subnets da VPC conversem entre si; quem restringe quem fala com quem são os Security Groups. Um RDS "publicamente acessível" exige que todas as subnets do seu DB subnet group tenham internet gateway; o recomendado para bancos é subnet privada (veja RDS).The local route lets the VPC's subnets talk to each other; what restricts who talks to whom is Security Groups. A "publicly accessible" RDS requires every subnet in its DB subnet group to have an internet gateway; for databases a private subnet is the usual choice (see RDS).
NAT Gateway
Permite que instâncias em subnet privada iniciem conexões para fora da VPC, enquanto serviços externos não conseguem iniciar conexão com elas. O NAT gateway público (padrão) fica numa subnet pública, exige um Elastic IP e roteia o tráfego para o internet gateway. O privado serve para outras VPCs ou redes on-premises (via transit gateway ou virtual private gateway) e não aceita Elastic IP. Existe também o NAT gateway regional, com expansão multi-AZ automática.Lets instances in a private subnet initiate connections out of the VPC, while external services cannot start connections to them. The public NAT gateway (default) lives in a public subnet, needs an Elastic IP and routes traffic to the internet gateway. The private one is for other VPCs or on-premises networks (through a transit gateway or virtual private gateway) and does not accept an Elastic IP. There is also a regional NAT gateway with automatic multi-AZ expansion.
VPC endpoints
Conectam a VPC a serviços AWS de forma privada, sem internet gateway nem NAT. O tráfego fica na rede da AWS.Connect the VPC to AWS services privately, with no internet gateway or NAT. Traffic stays on the AWS network.
Gateway endpoint
Para S3 e DynamoDB. Não usa AWS PrivateLink; o tráfego é direcionado por rota.For S3 and DynamoDB. Does not use AWS PrivateLink; traffic is directed by route.Interface endpoint
Usa AWS PrivateLink: cria uma interface de rede (com IP privado) em cada subnet escolhida e o tráfego é resolvido por DNS. Aceita uma endpoint policy para controlar quem o usa.Uses AWS PrivateLink: creates a network interface (with a private IP) in each chosen subnet and traffic is resolved through DNS. Accepts an endpoint policy to control who uses it.Exemplo: instâncias sem IP público podem usar o Session Manager com VPC endpoints do Systems Manager (veja Systems Manager).Example: instances without a public IP can use Session Manager with Systems Manager VPC endpoints (see Systems Manager).
Quando usarWhen to use
Sempre que houver mais de um ambiente ou camada: borda (ALB) em subnets públicas, aplicação e banco em privadas, em pelo menos duas AZs.Whenever there is more than one environment or tier: edge (ALB) in public subnets, application and database in private ones, in at least two AZs.Quando evitarWhen to avoid
Colocar instâncias de aplicação com IP público só por conveniência; usar NAT gateway quando um endpoint resolveria; CIDRs sobrepostos se houver planos de peering ou transit gateway.Giving application instances public IPs just for convenience; using a NAT gateway when an endpoint would do; overlapping CIDRs if peering or a transit gateway is planned.O que torna uma subnet "pública"?What makes a subnet "public"?
0.0.0.0/0 para o internet gateway.Its route table has a 0.0.0.0/0 route to the internet gateway.Onde fica o NAT gateway público?Where does the public NAT gateway live?
Quantos IPs utilizáveis tem uma subnet /24?How many usable IPs does a /24 subnet have?
- What is Amazon VPC?
- Subnet CIDR blocks
- Configure route tables
- NAT gateways
- AWS PrivateLink concepts (VPC endpoints)
- EC2 instance IP addressing (otimização de IPv4 público)
- RDS: Working with a DB instance in a VPC
Removido por falta de fonte nas páginas lidas: valores padrão de DNS hostnames/DNS resolution e a afirmação de que a rota local "não pode ser deletada". Reformulado: "10.0.0.0/16 é o IPv4 comum" virou apenas um exemplo; "subnet privada nunca fala com a internet" passou a mencionar NAT gateway e VPC endpoints.Removed for lack of a source in the pages read: default values for DNS hostnames/DNS resolution and the claim that the local route "cannot be deleted". Reworded: "10.0.0.0/16 is the common IPv4" became only an example; "a private subnet never talks to the internet" now mentions NAT gateways and VPC endpoints.
Security Groups & Prefix Lists
Security group: firewall virtual que controla o tráfego que pode chegar e sair dos recursos associados a ele. Prefix list: um conjunto de CIDRs reutilizável nas regras.Security group: a virtual firewall controlling the traffic allowed to reach and leave the resources it is associated with. Prefix list: a reusable set of CIDRs for your rules.
Como funcionaHow it works
- Só existem regras de permissão (allow), não de bloqueio. Um SG novo não tem regra inbound, então nenhum tráfego de entrada é permitido até você adicionar.Rules are allow only, no deny. A new SG has no inbound rules, so no inbound traffic is allowed until you add some.
- Um SG novo vem com uma regra outbound que libera toda a saída. Se você remover e não houver regras de saída, nenhuma saída é permitida.A new SG comes with an outbound rule allowing all outbound traffic. If you remove it and have no outbound rules, no outbound traffic is allowed.
- Stateful: a resposta a um tráfego permitido é liberada independentemente das regras do outro sentido. Por isso o outbound de um banco pode ficar vazio e ele ainda responde ao que o inbound autorizou.the response to allowed traffic is permitted regardless of the other direction's rules. That is why a database's outbound can be empty and it still answers what inbound allowed.
- Vários SGs em um recurso têm suas regras somadas. Mudanças nas regras valem na hora para todos os recursos associados. O SG é associado a interfaces de rede, não a IPs individuais.Several SGs on one resource have their rules aggregated. Rule changes apply immediately to all associated resources. An SG is tied to network interfaces, not individual IPs.
- Cada regra tem protocolo, faixa de portas e origem (inbound) ou destino (outbound): um IP (
/32), um CIDR, uma prefix list ou outro Security Group.Each rule has a protocol, port range and a source (inbound) or destination (outbound): an IP (/32), a CIDR, a prefix list or another Security Group. - Não há cobrança por usar security groups. Existem cotas (SGs por VPC, regras por SG, SGs por interface).There is no charge for security groups. There are quotas (SGs per VPC, rules per SG, SGs per interface).
- SGs não filtram tráfego para DNS da Amazon, DHCP, metadados da instância, Time Sync e o roteador da VPC.SGs do not filter traffic to Amazon DNS, DHCP, instance metadata, Time Sync and the VPC router.
Security Groups encadeadosChained Security Groups
Em vez de liberar por IP, use como origem o ID de outro SG. A regra vale para as instâncias associadas àquele SG, pelo IP privado delas, e sobrevive à troca de instâncias. Exemplo clássico da documentação (load balancer, web e banco):Instead of allowing by IP, use another SG's ID as the source. The rule applies to instances associated with that SG, through their private IPs, and survives instance replacement. The docs' classic example (load balancer, web and database):
in: 0.0.0.0/0app port → sg-app
in: sg-albdb port → sg-db
in: sg-app
- Referenciar um SG não copia as regras dele para o SG que referencia.Referencing an SG does not copy its rules into the referencing SG.
- Para referenciar em regra inbound, os SGs devem estar na mesma VPC ou em VPCs ligadas por peering ou transit gateway. Em regra outbound: mesma VPC ou peering.To reference in an inbound rule, the SGs must be in the same VPC or in VPCs linked by peering or a transit gateway. In an outbound rule: same VPC or peering.
- Uma regra que referencia outro SG conta como uma regra, não importa o tamanho do SG referenciado.A rule referencing another SG counts as one rule, no matter the size of the referenced SG.
- Se o tráfego passa por uma appliance intermediária (middlebox), referenciar o SG do outro lado não basta: use o IP privado ou o CIDR da subnet.If traffic goes through a middlebox appliance, referencing the other side's SG is not enough: use the private IP or the subnet CIDR.
Managed Prefix Lists
Conjunto de um ou mais blocos CIDR que você referencia como uma unidade em regras de security group e em route tables. Ao adicionar um CIDR à lista, todos os SGs que a usam são atualizados.A set of one or more CIDR blocks you reference as a unit in security group rules and route tables. Adding a CIDR to the list updates every SG using it.
Gerenciada pelo clienteCustomer-managed
Você define e mantém. Só IPv4 ou IPv6, vale na Region onde foi criada, e você escolhe o máximo de entradas na criação. Pode ser compartilhada com outras contas via AWS RAM. Cada edição cria uma nova versão.You define and maintain it. IPv4 or IPv6 only, applies to the Region it was created in, and you set the maximum entries at creation. It can be shared with other accounts via AWS RAM. Each edit creates a new version.Gerenciada pela AWSAWS-managed
Faixas de IP de serviços da AWS. Você não pode criar, alterar, compartilhar nem apagar.IP ranges of AWS services. You cannot create, modify, share or delete them.Uso típico: um único conjunto de IPs do escritório/VPN liberado para SSH ou para um painel em vários SGs.Typical use: a single set of office/VPN IPs allowed for SSH or an admin panel across several SGs.
0.0.0.0/0); não abra faixas largas de portas; considere NACLs como camada extra.
Limit who can create and change SGs; create as few SGs as possible; for ports 22 (SSH) and 3389 (RDP), authorize only specific IP ranges (never 0.0.0.0/0); do not open wide port ranges; consider network ACLs as an extra layer.
Quando usarWhen to use
SG por papel (alb, app, db) encadeados por referência; prefix lists para conjuntos de IPs que mudam e se repetem em várias regras.One SG per role (alb, app, db) chained by reference; prefix lists for IP sets that change and repeat across many rules.Quando evitarWhen to avoid
Origem0.0.0.0/0 em portas administrativas ou de banco; prefix list com máximo de entradas grande sem necessidade (consome cota); depender de SG para filtrar DNS.Source 0.0.0.0/0 on admin or database ports; a prefix list with a large max size for no reason (it eats quota); relying on SGs to filter DNS.O banco precisa de regra outbound para responder à API?Does the database need an outbound rule to answer the API?
Quantas regras consome uma prefix list com máximo de 20 entradas e 3 CIDRs hoje?How many rules does a prefix list with max 20 entries and 3 CIDRs today consume?
- Control traffic to your AWS resources using security groups
- Security group rules
- Managed prefix lists
Removido das anotações antigas (sem fonte): regras de "frontend estático exige backend público" e "SSR: backend só aceita frontends". São decisões de arquitetura, não afirmações da documentação; o encadeamento por SG acima cobre o caso do backend privado.Removed from the old notes (no source): the "static frontend requires a public backend" and "SSR: backend accepts only frontends" rules. They are architecture decisions, not documentation claims; the SG chaining above covers the private-backend case.
Application Load Balancer
O Elastic Load Balancing distribui o tráfego entre vários destinos (instâncias EC2, containers, IPs) em uma ou mais zonas de disponibilidade e só envia para destinos saudáveis. O ALB faz isso na camada de aplicação (HTTP/HTTPS).Elastic Load Balancing distributes traffic across multiple targets (EC2 instances, containers, IPs) in one or more Availability Zones and only sends to healthy targets. The ALB does this at the application layer (HTTP/HTTPS).
Tipos de load balancerLoad balancer types
ALB
Application: camada 7. Roteia por conteúdo da requisição (host, caminho, cabeçalhos...), faz redirect e respostas fixas, e aceita targets por instância, IP ou Lambda.Application: layer 7. Routes by request content (host, path, headers...), does redirects and fixed responses, and supports instance, IP or Lambda targets.NLB
Network: camada 4 (TCP, UDP, TLS, QUIC). Lida com milhões de requisições por segundo e tem IP estático por zona (com opção de Elastic IP).Network: layer 4 (TCP, UDP, TLS, QUIC). Handles millions of requests per second and has a static IP per zone (with Elastic IP option).GWLB
Gateway: camada 3. Implanta e escala appliances virtuais (firewalls, detecção de intrusão, inspeção profunda de pacotes) usando o protocolo GENEVE.Gateway: layer 3. Deploys and scales virtual appliances (firewalls, intrusion detection, deep packet inspection) using the GENEVE protocol.Há ainda o Classic Load Balancer. O restante desta página trata do ALB.There is also the Classic Load Balancer. The rest of this page covers the ALB.
Peças do ALBALB components
HTTPS :443→ Rules
host / path→ Target group→ Targets
- Listener: verifica pedidos de conexão com o protocolo e a porta que você configura. Toda listener tem uma regra default, e você pode adicionar outras.checks for connection requests using the protocol and port you configure. Every listener has a default rule, and you can add others.
- Target group: encaminha para um ou mais targets usando o protocolo e a porta que você definir (a porta do target deve ser a em que a aplicação escuta). Health checks são configurados por target group. Um target pode estar em mais de um target group.routes to one or more targets using the protocol and port you set (the target port must be the one the app listens on). Health checks are configured per target group. A target can be in more than one target group.
- O algoritmo padrão do target group é round robin; a alternativa é least outstanding requests.The target group's default algorithm is round robin; the alternative is least outstanding requests.
Regras por host e caminhoHost and path rules
As regras são avaliadas em ordem de prioridade, da menor para a maior; a regra default é avaliada por último e não tem condições. Exemplo (um ALB para vários domínios):Rules are evaluated in priority order, from the lowest to the highest; the default rule is evaluated last and has no conditions. Example (one ALB for several domains):
| PrioridadePriority | CondiçãoCondition | AçãoAction |
|---|---|---|
| 10 | host-header: api.exemplo.com.br | forward → tg-api |
| 20 | host-header: app.exemplo.com.br | forward → tg-app |
| 30 | path-pattern: /admin/* | fixed-response 403 |
| defaultdefault | — | fixed-response 404 |
- Cada regra tem exatamente uma ação entre
forward,redirectefixed-response, e ela é a última a executar.Each rule has exactly one action amongforward,redirectandfixed-response, and it runs last. - Condições disponíveis:
host-header,path-pattern,http-request-method,source-ip,http-headerequery-string. Há limite de três valores de comparação por condição e cinco por regra.Available conditions:host-header,path-pattern,http-request-method,source-ip,http-headerandquery-string. Limits: three comparison strings per condition and five per rule. - As regex das condições não suportam lookahead, lookbehind, backreferences, entre outros recursos.Condition regexes do not support lookahead, lookbehind, backreferences, among other features.
Health checks
O ALB testa periodicamente cada target e só roteia para os saudáveis. Valores padrão segundo a documentação em 2026-10-13 (podem mudar):The ALB periodically tests each target and only routes to healthy ones. Defaults per the docs on 2026-10-13 (they may change):
| ConfiguraçãoSetting | PadrãoDefault |
|---|---|
| Protocol / Path / Port | HTTP · / · porta do tráfegotraffic port |
| Interval | 30 s (5–300 s)30 s (5–300 s) |
| Timeout | 5 s (2–120 s)5 s (2–120 s) |
| Healthy / Unhealthy threshold | 5 / 2 (2–10)5 / 2 (2–10) |
| Success codes | 200 (aceita 200–499, listas e faixas)(accepts 200–499, lists and ranges) |
- Fail open: se todos os targets do grupo estão não saudáveis, o ALB roteia para todos eles, independentemente do estado.Fail open: if all targets in a group are unhealthy, the ALB routes to all of them regardless of state.
- Health checks não suportam WebSockets.Health checks do not support WebSockets.
- O path do health check precisa responder com um código aceito; apontar para uma página que redireciona (ex.: 301) faz o target ficar unhealthy se 301 não estiver nos success codes.The health check path must answer with an accepted code; pointing at a page that redirects (e.g. 301) makes the target unhealthy unless 301 is in the success codes.
HTTPS
Um listener HTTPS exige pelo menos um certificado X.509: o certificado default. Para vários domínios na mesma porta, adicione certificados à certificate list (o ALB escolhe o certificado pelo nome enviado via SNI) ou use um certificado com SANs/curinga. A AWS recomenda emitir os certificados no AWS Certificate Manager. O nome no certificado precisa bater com o host pedido, senão a conexão falha.An HTTPS listener requires at least one X.509 certificate: the default certificate. For several domains on the same port, add certificates to the certificate list (the ALB picks by the name sent via SNI) or use a certificate with SANs/wildcard. AWS recommends issuing certificates in AWS Certificate Manager. The name on the certificate must match the requested host or the connection fails.
Security Groups: o do ALB libera 80/443 da internet; o da aplicação libera a porta da app só do SG do ALB (veja Security Groups encadeados).Security Groups: the ALB's allows 80/443 from the internet; the app's allows the app port only from the ALB's SG (see chained Security Groups).
Quando usarWhen to use
Aplicações HTTP/HTTPS, vários serviços ou domínios atrás de um único ponto de entrada, containers no ECS, redirect HTTP→HTTPS.HTTP/HTTPS apps, several services or domains behind one entry point, containers on ECS, HTTP→HTTPS redirect.Quando evitarWhen to avoid
Tráfego TCP/UDP genérico ou necessidade de IP estático (NLB); inspeção por appliances (GWLB); health check em WebSocket ou que depende de redirects.Generic TCP/UDP traffic or a need for static IPs (NLB); appliance inspection (GWLB); health checks over WebSocket or relying on redirects.Para quem o ALB envia o tráfego?Who does the ALB send traffic to?
O que acontece quando todos os targets ficam unhealthy?What happens when all targets are unhealthy?
- What is an Application Load Balancer?
- Listener rules for your Application Load Balancer
- Health checks for ALB target groups
- SSL certificates for your Application Load Balancer
- What is a Network Load Balancer? · What is a Gateway Load Balancer?
- VPC: Security group rules (exemplo com ALB)
Corrigido/reformulado: "NLB: performance extrema (jogos, streaming)" foi trocado pelo que a documentação diz (camada 4, milhões de req/s, IP estático); o ELB agora é apresentado como família de quatro tipos. A frase sobre redirect no health check é uma consequência dos success codes documentados, não uma citação.Corrected/reworded: "NLB: extreme performance (games, streaming)" was replaced by what the docs say (layer 4, millions of req/s, static IP); ELB is now presented as a family of four types. The redirect/health-check remark is a consequence of the documented success codes, not a quote.
ACM (Certificate Manager)
AWS Certificate Manager emite e gerencia certificados SSL/TLS para usar com serviços integrados, como o Application Load Balancer. A validação por DNS prova que você controla o domínio.AWS Certificate Manager issues and manages SSL/TLS certificates for integrated services such as the Application Load Balancer. DNS validation proves you control the domain.
Validação por DNSDNS validation
- Ao escolher DNS, o ACM fornece um ou mais registros CNAME (nome e valor únicos para o seu domínio e conta). Eles são a prova de que você controla o domínio.When you choose DNS, ACM gives you one or more CNAME records (a name and value unique to your domain and account). They are proof that you control the domain.
- O CNAME é adicionado uma única vez. O ACM renova o certificado automaticamente enquanto ele estiver em uso e o CNAME continuar no DNS. Apagar o CNAME interrompe a renovação.The CNAME is added only once. ACM renews the certificate automatically as long as it is in use and the CNAME stays in DNS. Deleting the CNAME stops renewal.
- Com o Route 53 como DNS e permissão de escrita na zona, o console mostra o botão Create records in Route 53. O status pode continuar Pending validation por até 30 minutos.With Route 53 as DNS and write permission on the zone, the console shows a Create records in Route 53 button. Status may remain Pending validation for up to 30 minutes.
- Se o ACM não conseguir validar em 72 horas, o status vira Validation timed out e é preciso pedir um novo certificado.If ACM cannot validate within 72 hours, the status becomes Validation timed out and you must request a new certificate.
- Se o DNS não é Route 53, copie o CNAME (ou exporte o CSV) e crie-o no provedor. Alguns provedores acrescentam o domínio ao nome sozinhos: se você colar o nome completo, ele vira
_x.exemplo.com.exemplo.come a validação falha.If DNS is not Route 53, copy the CNAME (or export the CSV) and create it at your provider. Some providers append the domain to the name themselves: if you paste the full name it becomes_x.example.com.example.comand validation fails.
- Um certificado criado com validação por e-mail não pode ser trocado para DNS: apague e crie outro.A certificate created with email validation cannot be switched to DNS: delete it and create a new one.
- O CNAME do domínio base e o do curinga (
*.exemplo.comeexemplo.com) são iguais; subdomínios específicos têm CNAMEs próprios.The CNAME for the base domain and the wildcard (*.example.comandexample.com) are identical; specific subdomains have their own CNAMEs. - Um curinga
*.exemplo.comcobre um nível de subdomínio e não cobre o domínio raiz (exemplo.com); inclua os dois no certificado se precisar.A*.example.comwildcard covers one subdomain level and does not cover the apex (example.com); include both in the certificate if needed. - A resolução de CNAME falha se houver mais de cinco CNAMEs encadeados na configuração de DNS.CNAME resolution fails if more than five CNAMEs are chained in your DNS configuration.
- O token de validação funciona em qualquer Region, então dá para recriar o mesmo certificado em várias Regions.The validation token works in any Region, so you can re-create the same certificate in multiple Regions.
- Certificados importados no ACM não renovam sozinhos: você acompanha a expiração e troca antes do fim.Imported certificates in ACM do not renew by themselves: you track expiry and replace them before it ends.
Se você usa registros CAA no domínio, é preciso autorizar a AWS a emitir; veja a página "Configure a CAA record" do ACM, referenciada na documentação do Route 53.If you use CAA records on the domain, you must authorize AWS to issue; see ACM's "Configure a CAA record" page, referenced in the Route 53 docs.
Quando usarWhen to use
HTTPS em ALB (e outros serviços integrados) com renovação automática; domínios cujo DNS você controla (Route 53 facilita).HTTPS on an ALB (and other integrated services) with automatic renewal; domains whose DNS you control (Route 53 makes it easy).Quando evitarWhen to avoid
Validação por e-mail se o DNS é seu; apagar o CNAME "que sobrou" (quebra a renovação); depender de renovação automática em certificado importado.Email validation if you own the DNS; deleting the "leftover" CNAME (breaks renewal); counting on automatic renewal for an imported certificate.Por que não apagar o CNAME de validação depois de emitir?Why not delete the validation CNAME after issuance?
Systems Manager
Duas ferramentas do AWS Systems Manager muito usadas no dia a dia: o Session Manager (acesso a servidores sem SSH) e o Parameter Store (configuração centralizada).Two AWS Systems Manager tools used every day: Session Manager (server access without SSH) and Parameter Store (centralized configuration).
Session Manager
Ferramenta totalmente gerenciada para acessar instâncias EC2 (e servidores on-premises/VMs) por um shell interativo no navegador ou pela AWS CLI, sem abrir portas de entrada, sem bastion host e sem gerenciar chaves SSH.A fully managed tool to reach EC2 instances (and on-premises servers/VMs) through an interactive shell in the browser or the AWS CLI, with no inbound ports, no bastion hosts and no SSH keys to manage.
- Controle por IAM: as políticas definem quem pode abrir sessões e em quais nós; dá para conceder acesso temporário (ex.: plantão).IAM control: policies define who can open sessions and on which nodes; you can grant temporary access (e.g. on-call).
- Sem IP público: com VPC endpoints (AWS PrivateLink) do Systems Manager, o tráfego fica na rede da AWS. Veja VPC endpoints.No public IP: with Systems Manager VPC endpoints (AWS PrivateLink), traffic stays on the AWS network. See VPC endpoints.
- Port forwarding: redireciona uma porta da instância para uma porta local (útil para acessar um banco privado).Port forwarding: redirects an instance port to a local port (handy for reaching a private database).
- Auditoria: integra com CloudTrail, S3, CloudWatch Logs e EventBridge/SNS. Sessões de port forwarding ou SSH não têm log do conteúdo.Auditing: integrates with CloudTrail, S3, CloudWatch Logs and EventBridge/SNS. Port-forwarding or SSH sessions get no content logging.
- Pré-requisitos: o nó precisa ser gerenciado pelo Systems Manager (SSM Agent e permissões IAM; veja "Setting up Session Manager"). Na AWS CLI é preciso a versão 1.16.12 ou superior e o plugin do Session Manager.Prerequisites: the node must be managed by Systems Manager (SSM Agent and IAM permissions; see "Setting up Session Manager"). The AWS CLI needs version 1.16.12 or later plus the Session Manager plugin.
aws ssm start-session --target i-0123456789abcdef0
Parameter Store
Armazém centralizado de configuração: valores nomeados (parameters) que a aplicação lê em tempo de execução, sem deixar valores fixos no código.A centralized configuration store: named values (parameters) the application reads at runtime, with no hardcoded values in code.
String
Texto simples: nome do ambiente, URL de endpoint, ID de recurso.Plain text: environment name, endpoint URL, resource ID.StringList
Lista separada por vírgulas, comosubnet-aaa,subnet-bbb.Comma-separated list, such as subnet-aaa,subnet-bbb.SecureString
Valor criptografado com AWS KMS. Para segredos como senhas, chaves de API e tokens, a documentação recomenda o Secrets Manager.A value encrypted with AWS KMS. For secrets such as passwords, API keys and tokens, the docs recommend Secrets Manager./minha-app/prod/db-host # hierarquia: /app/ambiente/nome
/minha-app/staging/db-host
- Hierarquia: agrupe por caminho (ex.:
/app/ambiente/chave) para buscar e filtrar vários parâmetros de uma vez e dar permissões IAM por prefixo (ler/minha-app/prod/*mas não/minha-app/dev/*).Hierarchy: group by path (e.g./app/env/key) to fetch and filter several parameters at once and grant IAM permissions per prefix (read/my-app/prod/*but not/my-app/dev/*). - Versões: guarda as 100 versões mais recentes de cada parâmetro.Versions: keeps the 100 most recent versions of each parameter.
- Camadas: standard (sem custo adicional; até 10.000 parâmetros por conta/Region, valor de até 4 KB) e advanced (até 100.000; 8 KB; políticas de parâmetro e compartilhamento entre contas; cobrado). Valores da documentação em 2026-10-13; confira a página de preços.Tiers: standard (no extra charge; up to 10,000 parameters per account/Region, value up to 4 KB) and advanced (up to 100,000; 8 KB; parameter policies and cross-account sharing; billed). Values per the docs on 2026-10-13; check the pricing page.
- Integrações: ECS/Fargate injetam parâmetros como variáveis de ambiente; Lambda tem extensão; CloudFormation e CodeBuild leem parâmetros. Há também parâmetros públicos que apontam para as AMIs atuais.Integrations: ECS/Fargate inject parameters as environment variables; Lambda has an extension; CloudFormation and CodeBuild read parameters. There are also public parameters pointing to current AMIs.
- Uma atualização vale na próxima leitura, sem validação, rollout gradual ou rollback automático. Para configuração em que um valor ruim derruba o sistema, a AWS aponta o AWS AppConfig.An update takes effect on the next read, with no validation, gradual rollout or automatic rollback. For configuration where a bad value could cause an outage, AWS points to AWS AppConfig.
- No ECS, variáveis do Parameter Store são resolvidas quando a task inicia; mudar o valor exige novo deploy (veja ECS).On ECS, Parameter Store variables are resolved when the task starts; changing the value needs a new deployment (see ECS).
- Throughput padrão serve cargas menores; há modo de alto throughput, com custo adicional. Avalie cedo se a aplicação lê parâmetros com frequência.Default throughput suits smaller workloads; a high-throughput mode exists at extra cost. Evaluate early if your app reads parameters often.
| Parameter Store | Secrets Manager | AppConfig | |
|---|---|---|---|
| ParaFor | Configuração estática, endpoints, IDsStatic config, endpoints, IDs | Credenciais e segredosCredentials and secrets | Configuração que muda com frequência, feature flagsFrequently changing config, feature flags |
| RotaçãoRotation | NenhumaNone | AutomáticaAutomatic | Não se aplicaNot applicable |
| CustoCost | Standard sem custo adicionalStandard has no extra charge | Por segredo/mês e por chamadaPer secret/month and per call | Por requisição de configuraçãoPer configuration request |
Quando usarWhen to use
Session Manager: acesso a instâncias privadas, sem porta 22. Parameter Store: configuração por ambiente (/app/prod/...) lida pela aplicação.Session Manager: access to private instances without port 22. Parameter Store: per-environment config (/app/prod/...) read by the application.Quando evitarWhen to avoid
Parameter Store para segredos que precisam de rotação (use Secrets Manager); alterar parâmetros críticos sem validação; esperar log do conteúdo de sessões SSH/port forwarding.Parameter Store for secrets that need rotation (use Secrets Manager); changing critical parameters without validation; expecting content logs for SSH/port-forwarding sessions.O que o Session Manager dispensa?What does Session Manager make unnecessary?
Um SecureString é ideal para uma senha de banco com rotação?Is a SecureString ideal for a rotating database password?
- AWS Systems Manager Session Manager
- AWS Systems Manager Parameter Store
- What is AWS Secrets Manager?
Não verificado nesta rodada: o comando aws ssm start-session exato e as permissões necessárias no perfil da instância (consulte "Setting up Session Manager").Not verified this round: the exact aws ssm start-session command and the permissions needed on the instance profile (see "Setting up Session Manager").
Secrets Manager
AWS Secrets Manager ajuda a gerenciar, recuperar e rotacionar credenciais de banco, credenciais de aplicação, tokens OAuth, chaves de API e outros segredos durante todo o ciclo de vida.AWS Secrets Manager helps you manage, retrieve and rotate database credentials, application credentials, OAuth tokens, API keys and other secrets throughout their lifecycle.
- Em vez de credenciais fixas no código, a aplicação faz uma chamada em tempo de execução ao Secrets Manager. Assim, quem inspeciona a aplicação não encontra a senha.Instead of hardcoded credentials, the application makes a runtime call to Secrets Manager. Anyone inspecting the application will not find the password.
- Rotação automática:Automatic rotation: troca segredos de longo prazo por segredos de curta duração. Como as credenciais não ficam com a aplicação, rotacionar não exige alterar e redeployar os clientes. A rotação (exceto a gerenciada) usa uma função Lambda, cobrada pelo preço do Lambda.replaces long-term secrets with short-term ones. Since credentials are not stored with the app, rotating them does not require changing and redeploying clients. Rotation (except managed rotation) uses a Lambda function, charged at Lambda rates.
- Criptografia:Encryption: com AWS KMS. A chave gerenciada
aws/secretsmanageré gratuita; chaves próprias são cobradas pela tarifa do KMS.with AWS KMS. The managed keyaws/secretsmanageris free; your own keys are charged at KMS rates. - Versionamento:Versioning: versões com staging labels. Também há acesso entre contas e log de auditoria detalhado.versions with staging labels. There are also cross-account access and fine-grained audit logging.
- Custo:Cost: paga-se por segredo por mês e por chamada de API, sem taxa mínima. Segredos marcados para exclusão não são cobrados. Veja a página de preços.you pay per secret per month and per API call, with no minimum fees. Secrets marked for deletion are not charged. See the pricing page.
Integração com o RDSRDS integration
Ao criar um banco, a opção Manage master credentials in AWS Secrets Manager guarda a senha do usuário master em um segredo (com KMS opcional). O RDS Proxy também conecta no banco usando credenciais guardadas no Secrets Manager. Veja RDS.When creating a database, the Manage master credentials in AWS Secrets Manager option stores the master user password in a secret (with optional KMS). RDS Proxy also connects to the database using credentials stored in Secrets Manager. See RDS.
- Credenciais AWS → IAM · Chaves de criptografia → KMS · Chaves SSH → EC2 Instance Connect · Chaves privadas e certificados → ACM.AWS credentials → IAM · Encryption keys → KMS · SSH keys → EC2 Instance Connect · Private keys and certificates → ACM.
Quando usarWhen to use
Credenciais de banco, chaves de API e tokens que devem ser rotacionados, auditados ou compartilhados entre contas.Database credentials, API keys and tokens that must be rotated, audited or shared across accounts.Quando evitarWhen to avoid
Configuração comum (endpoints, nomes): use Parameter Store, que no tier standard não tem custo adicional; credenciais AWS (use roles).Plain configuration (endpoints, names): use Parameter Store, which has no extra charge in the standard tier; AWS credentials (use roles).Rotacionar a senha exige redeploy da aplicação?Does rotating the password require redeploying the app?
- What is AWS Secrets Manager?
- Parameter Store (comparativo com Secrets Manager e AppConfig)
- RDS: Settings for DB instances · Amazon RDS Proxy
Não verificado nesta rodada: o nome exato da chamada de API GetSecretValue usada no diagrama (é a operação padrão de leitura, mas a página lida não a cita).Not verified this round: the exact GetSecretValue API call in the diagram (it is the standard read operation, but the page read does not name it).
RDS
Amazon Relational Database Service: facilita criar, operar e escalar bancos relacionais na nuvem, com a AWS cuidando de backups, patches, detecção de falhas e recuperação.Amazon Relational Database Service: makes it easier to set up, operate and scale relational databases in the cloud, with AWS handling backups, patching, failure detection and recovery.
Motores suportados: Db2, MariaDB, SQL Server, MySQL, Oracle e PostgreSQL (o Aurora tem guia próprio). A AWS recomenda o RDS como escolha padrão para a maioria dos bancos relacionais; em um banco sobre EC2, instalação, patch do SO e do banco, backup e alta disponibilidade ficam por sua conta.Supported engines: Db2, MariaDB, SQL Server, MySQL, Oracle and PostgreSQL (Aurora has its own guide). AWS recommends RDS as the default choice for most relational databases; with a database on EC2, installation, OS and database patching, backups and high availability are on you.
subnet públicapublic subnet→ AppApp
subnet privadaprivate subnet→ DB primary
AZ A · privadaprivate⇄ sync DB standby
AZ B · privadaprivate
ConceitosConcepts
DB instance
Ambiente de banco isolado na nuvem; pode conter um ou mais bancos criados por você. A classe define CPU e memória: há classes de uso geral (db.m), otimizadas para memória (db.r, db.x, db.z), para computação (db.c) e burstable (db.t).An isolated database environment in the cloud; it can hold one or more databases you create. The class defines CPU and memory: general purpose (db.m), memory optimized (db.r, db.x, db.z), compute optimized (db.c) and burstable (db.t).Storage
Volumes EBS. Tipos: General Purpose SSD (indicado para dev/teste), Provisioned IOPS SSD (para cargas intensivas em I/O, indicado para produção) e Magnetic (obsoleto). O storage autoscaling aumenta o espaço sozinho (veja abaixo).EBS volumes. Types: General Purpose SSD (suited to dev/test), Provisioned IOPS SSD (for I/O-intensive workloads, suited to production) and Magnetic (deprecated). Storage autoscaling grows the space on its own (see below).VPC
O banco roda em uma VPC. Você cria um DB subnet group com subnets em pelo menos duas zonas de disponibilidade da Region (mesmo em Single-AZ, para poder virar Multi-AZ depois). Reserve IPs livres nas subnets: o RDS usa para failover e manutenção.The database runs in a VPC. You create a DB subnet group with subnets in at least two Availability Zones of the Region (even for Single-AZ, so it can become Multi-AZ later). Leave free IPs in the subnets: RDS uses them for failover and maintenance.Acesso e segurançaAccess and security
- Public access: "Yes" dá um IP público ao banco; para isso todas as subnets do DB subnet group precisam de internet gateway. "No" deixa o acesso só de dentro da VPC. O acesso final é sempre controlado pelo Security Group: libere a porta do banco só do SG da aplicação."Yes" gives the database a public IP; for that every subnet in the DB subnet group needs an internet gateway. "No" keeps access to inside the VPC only. Final access is always controlled by the Security Group: allow the database port only from the application's SG.
- Master user: usuário criado com a instância, com privilégios altos mas não equivalentes a superusuário total (a lista varia por motor). O nome não pode ser alterado depois. A AWS recomenda não usar o master na aplicação: crie um usuário com o mínimo de privilégios.the user created with the instance, with high but not full-superuser privileges (the list varies by engine). The name cannot be changed later. AWS recommends not using the master in your application: create a user with minimum privileges.
- Secrets Manager: a opção Manage master credentials in AWS Secrets Manager guarda a senha master em um segredo. Veja Secrets Manager.the Manage master credentials in AWS Secrets Manager option stores the master password in a secret. See Secrets Manager.
- Encryption / KMS: criptografia em repouso é opção na criação; com ela você escolhe a chave KMS.encryption at rest is a creation-time option; with it you pick the KMS key.
- Deletion protection: impede apagar o banco por engano (no console, é ligada por padrão ao criar uma instância de produção).prevents accidental deletion (in the console it is on by default when you create a production instance).
- RDS Proxy: mantém um pool de conexões e as compartilha, ajuda a aplicação a escalar e a suportar picos, e se reconecta ao standby em falhas. Fica na mesma VPC do banco e não é publicamente acessível; só funciona para MariaDB, MySQL e PostgreSQL (entre os motores listados). Tem cobrança própria; veja os preços.keeps and shares a connection pool, helps the application scale and absorb spikes, and reconnects to the standby on failures. It lives in the same VPC as the database and is not publicly accessible; among the listed engines it works for MariaDB, MySQL and PostgreSQL. It has its own pricing; see prices.
Multi-AZ
Multi-AZ DB instance
Um standby síncrono em outra AZ, para failover. O standby não atende leitura.One synchronous standby in another AZ, for failover. The standby does not serve reads.Multi-AZ DB cluster
Um writer e dois readers em três AZs; os três atendem leitura e dão suporte a failover.One writer and two readers across three AZs; all three serve reads and support failover.Multi-AZ traz redundância de dados e suporte a failover, elimina congelamentos de I/O e reduz picos de latência em backups. É recomendado para produção; para desenvolvimento e teste dá para criar sem standby. Não confunda com read replicas (escalam leitura, replicação assíncrona). O IP do banco muda no failover: conecte-se sempre pelo nome DNS (endpoint).Multi-AZ gives data redundancy and failover support, eliminates I/O freezes and minimizes latency spikes during backups. It is recommended for production; for development and testing you can create without a standby. Do not confuse it with read replicas (they scale reads, asynchronous replication). The database's IP changes on failover: always connect through the DNS name (endpoint).
BackupsBackups
- Backups automáticos: o RDS faz um snapshot do volume da instância na janela de backup e guarda pelo backup retention period que você define, permitindo restaurar a qualquer ponto no tempo dentro do período. Só ocorrem com o banco no estado
available. Para qualquer banco que importe, use retenção de 1 dia ou mais.Automated backups: RDS takes a volume snapshot of the instance during the backup window and keeps it for the backup retention period you set, letting you restore to any point in time within it. They only happen while the database is in theavailablestate. For any database that matters, use a retention of 1 day or more. - Snapshots manuais: você cria quando quiser; não são apagados quando a instância é excluída (até 100 manuais por Region, segundo a página lida). Backups automáticos são apagados com a instância, a não ser que você escolha retê-los; o snapshot final é opcional.Manual snapshots: you create them whenever you want; they are not deleted when the instance is deleted (up to 100 manual per Region per the page read). Automated backups are deleted with the instance unless you choose to retain them; the final snapshot is optional.
- O primeiro snapshot tem o banco completo; os seguintes são incrementais. Backups ficam no S3 e geram custo de armazenamento.The first snapshot holds the full database; later ones are incremental. Backups live in S3 and incur storage cost.
Storage autoscalingStorage autoscaling
Você define um Maximum storage threshold. O RDS aumenta o storage quando o espaço livre cai a 10% ou menos do alocado por pelo menos 5 minutos, e as modificações anteriores terminaram (máximo de quatro por 24 h). O aumento é do maior valor entre 10 GiB, 10% do alocado e o crescimento previsto. Não precisa de reinício nem causa downtime.You set a Maximum storage threshold. RDS grows storage when free space falls to 10% or less of the allocated for at least 5 minutes and previous modifications have completed (at most four per 24 h). The increase is the greater of 10 GiB, 10% of allocated, and predicted growth. No reboot and no downtime.
Nomes: instância vs. bancoNames: instance vs. database
| Campo / Field | O que éWhat it is |
|---|---|
| DB instance identifier | Nome da instância no RDS (até 63 caracteres alfanuméricos, único na conta e Region).The instance's name in RDS (up to 63 alphanumeric characters, unique per account and Region). |
| Initial database name | Nome do banco criado dentro da instância. Se você não informar, o RDS não cria banco (exceto em Oracle e PostgreSQL).Name of the database created inside the instance. If you leave it out, RDS does not create one (except for Oracle and PostgreSQL). |
Quando usarWhen to use
Bancos relacionais de aplicações, com backup, patch e failover gerenciados. Multi-AZ e deletion protection em produção.Application relational databases with managed backups, patching and failover. Multi-AZ and deletion protection in production.Quando evitarWhen to avoid
Acesso público sem necessidade; usar o master na aplicação; achar que Multi-AZ substitui backup; depender de read replica como alta disponibilidade.Public access without need; using the master in the application; assuming Multi-AZ replaces backups; relying on a read replica as high availability.O standby de um Multi-AZ DB instance atende consultas de leitura?Does a Multi-AZ DB instance's standby serve read queries?
Instance Identifier e Initial Database Name são a mesma coisa?Are Instance Identifier and Initial Database Name the same?
- What is Amazon RDS?
- Working with a DB instance in a VPC
- Settings for DB instances
- Master user account privileges
- Configuring and managing a Multi-AZ deployment
- Introduction to backups
- Managing capacity automatically with storage autoscaling
- Amazon RDS Proxy
Corrigido ou removido: "você não tem acesso ao root; o master é restrito" foi trocado pela descrição da documentação (privilégios elevados do master, lista por motor); "a VPC não muda depois" e "a chave KMS não pode ser alterada depois" saíram por falta de suporte nas páginas lidas; itens sobre o helper "Connect to an EC2" e sobre Certificate Authority ficaram fora por falta de leitura da fonte (consulte "Settings for DB instances").Corrected or removed: "you do not get root; the master is restricted" was replaced with the docs' description (the master's elevated privileges, listed per engine); "the VPC cannot change later" and "the KMS key cannot be changed afterwards" were dropped for lack of support in the pages read; the "Connect to an EC2" helper and Certificate Authority items were left out for lack of a source read (see "Settings for DB instances").
S3
Amazon Simple Storage Service: armazenamento de objetos com grande escala, disponibilidade, segurança e desempenho, para sites, backups, aplicações, data lakes e mais.Amazon Simple Storage Service: object storage with great scalability, availability, security and performance, for websites, backups, applications, data lakes and more.
Bucket
Contêiner de objetos, criado em uma Region. Nome e Region não mudam depois. O nome de um bucket de uso geral é único no namespace global (ou no namespace regional da sua conta).A container for objects, created in a Region. Name and Region cannot change afterwards. A general purpose bucket's name is unique in the global namespace (or in your account's regional namespace).Object & key
Objeto = dados + metadados. A key é o identificador dentro do bucket. Bucket + key (+ versão) identificam o objeto. Com versioning, você preserva e restaura cada versão.Object = data + metadata. The key is the identifier inside the bucket. Bucket + key (+ version) identify the object. With versioning you preserve and restore every version.Privado por padrãoPrivate by default
Buckets e objetos são privados até você conceder acesso (políticas de bucket, IAM, access points). O Block Public Access vem ativado; mantenha-o, salvo necessidade específica.Buckets and objects are private until you grant access (bucket policies, IAM, access points). Block Public Access comes on; keep it on unless you have a specific need.Consistência forteStrong consistency
Leitura-após-escrita forte para PUT e DELETE em todas as Regions: após um PUT bem-sucedido, o GET/LIST seguinte já vê o dado novo. Para gravações simultâneas na mesma key, vale a última (last-writer-wins).Strong read-after-write consistency for PUT and DELETE in all Regions: after a successful PUT, the next GET/LIST already sees the new data. For concurrent writes to the same key, the last writer wins.Presigned URL
Link temporário que dá acesso a um objeto por tempo limitado, sem mexer na bucket policy. Usa as credenciais de quem gerou a URL; para funcionar, essa identidade precisa ter a permissão da operação (ex.: s3:GetObject). Serve para download (GET) e upload (PUT) direto no S3, sem passar pelo seu servidor. Se já existir um objeto com a mesma key, o upload o substitui.A temporary link granting access to one object for a limited time, without touching the bucket policy. It uses the credentials of whoever generated the URL; for it to work, that identity needs the operation's permission (e.g. s3:GetObject). It serves direct download (GET) and upload (PUT) to S3, bypassing your server. If an object with the same key already exists, the upload replaces it.
- Validade: pelo console, de 1 minuto a 12 horas; pela AWS CLI/SDKs, até 7 dias (credenciais de usuário IAM com Signature V4).Lifetime: from the console, 1 minute to 12 hours; from the AWS CLI/SDKs, up to 7 days (IAM user credentials with Signature V4).
- Pegadinha: se a URL foi gerada com credenciais temporárias (role, STS, perfil da EC2/ECS), ela expira junto com a credencial, mesmo que você tenha pedido prazo maior. O S3 confere a validade no momento da requisição: um download já iniciado continua, mas retomar depois do prazo falha.Gotcha: if the URL was generated with temporary credentials (role, STS, EC2/ECS profile) it expires together with the credential, even if you asked for a longer period. S3 checks validity at request time: a download already running continues, but resuming after expiry fails.
- A URL é um "bearer token": quem a tiver acessa o objeto. Proteja-a e, se quiser, restrinja com condições (ex.:
s3:signatureAge, origem de rede).The URL is a bearer token: whoever holds it reaches the object. Protect it and, if you want, restrict with conditions (e.g.s3:signatureAge, network origin).
CustosCosts
A cobrança do S3 é por uso, sem taxas mínimas ou de excedente. Valores reais ficam na página de preços do S3 (as cifras da anotação antiga foram removidas). Pontos que a documentação destaca:S3 billing is pay-as-you-go, with no minimum or overage fees. Real values are on the S3 pricing page (the figures in the old note were removed). Points the docs highlight:
- Armazenamento por classe, requisições e transferência de dados.Storage per class, requests and data transfer.
- Classes IA e Glacier têm taxa de recuperação, duração mínima de armazenamento e tamanho mínimo cobrado.IA and Glacier classes have a retrieval fee, a minimum storage duration and a minimum billable size.
- Transições de lifecycle têm custo por requisição (não há taxa de recuperação nas transições).Lifecycle transitions have a per-request cost (there is no retrieval charge on transitions).
Classes de armazenamentoStorage classes
Todas as classes são projetadas para alta durabilidade (11 noves, 99,999999999%, exceto a legada Reduced Redundancy). A diferença está em acesso, disponibilidade, custo e regras mínimas:All classes are designed for high durability (eleven 9s, 99.999999999%, except the legacy Reduced Redundancy). The difference is access, availability, cost and minimum rules:
| ClasseClass | Indicada paraDesigned for | Duração mínimaMin duration |
|---|---|---|
| Standard | Dados acessados com frequência, acesso em milissegundos (padrão)Frequently accessed data, millisecond access (default) | — |
| Intelligent-Tiering | Padrão de acesso desconhecido ou variável: move objetos entre camadas sozinho. Sem taxa de recuperação; há taxa de monitoramento. Objetos menores que 128 KB não são monitorados.Unknown or changing access: moves objects between tiers by itself. No retrieval fee; there is a monitoring fee. Objects under 128 KB are not monitored. | — |
| Standard-IA / One Zone-IA | Dados de longa vida e acesso raro, ainda em milissegundos. One Zone-IA guarda em uma única AZ (não resiste à perda da AZ).Long-lived, infrequently accessed data, still millisecond access. One Zone-IA stores in a single AZ (does not survive losing the AZ). | 30 diasdays |
| Glacier Instant Retrieval | Arquivo acessado cerca de uma vez por trimestre, com acesso em milissegundosArchive accessed about once a quarter, millisecond access | 90 diasdays |
| Glacier Flexible Retrieval | Arquivo acessado cerca de uma vez por ano; recuperação de minutos a horas, é preciso restaurar antes de lerArchive accessed about once a year; retrieval in minutes to hours, you must restore before reading | 90 diasdays |
| Glacier Deep Archive | Arquivo acessado menos de uma vez por ano; recuperação em horas, é preciso restaurarArchive accessed less than once a year; retrieval in hours, you must restore | 180 diasdays |
Existe ainda o S3 Express One Zone (latência de um dígito de milissegundo em uma única AZ). Os tamanhos mínimos faturáveis (128 KB nas IA e Glacier IR) e as disponibilidades por classe estão na tabela de comparação oficial. Correção: o "Glacier" da anotação antiga virou três classes, e só duas exigem restauração.There is also S3 Express One Zone (single-digit millisecond latency in one AZ). Minimum billable sizes (128 KB for IA and Glacier IR) and per-class availability are in the official comparison table. Correction: the old note's "Glacier" is now three classes, and only two need a restore.
Lifecycle rules
Um conjunto de regras no bucket que faz o S3 agir sobre grupos de objetos. Dois tipos de ação: transition (mover para uma classe mais barata) e expiration (apagar quando expirar). As regras valem para objetos existentes e futuros; uma bucket policy não consegue impedir a ação do lifecycle.A set of rules on the bucket that makes S3 act on groups of objects. Two kinds of action: transition (move to a cheaper class) and expiration (delete when it expires). Rules apply to existing and future objects; a bucket policy cannot prevent the lifecycle action.
Prazos de exemplo. Respeite as durações mínimas das classes (30/90/180 dias): apagar ou mover cedo gera cobrança proporcional.Example timings. Respect the classes' minimum durations (30/90/180 days): deleting or moving early incurs a pro-rated charge.
Static website hosting
O S3 pode hospedar um site estático: páginas com conteúdo estático, possivelmente com scripts no navegador (SPA, HTML puro). É preciso configurar um index document e permissões de acesso. A AWS recomenda usar o AWS Amplify Hosting para servir o conteúdo do S3 com CDN (CloudFront) e URL HTTPS. Se o bucket usa criptografia SSE-KMS, é obrigatório servir via CloudFront com origin access control (OAC), pois SSE-KMS não suporta usuários anônimos.S3 can host a static website: pages with static content, possibly with client-side scripts (SPA, plain HTML). You must configure an index document and access permissions. AWS recommends using AWS Amplify Hosting to serve S3 content through a CDN (CloudFront) with an HTTPS URL. If the bucket uses SSE-KMS encryption, you must serve through CloudFront with origin access control (OAC), because SSE-KMS does not support anonymous users.
Quando usarWhen to use
Arquivos, uploads de usuários (com presigned URL), backups, logs, sites estáticos, dados que seguem o ciclo hot→cold com lifecycle.Files, user uploads (with presigned URLs), backups, logs, static sites, data following a hot→cold cycle with lifecycle.Quando evitarWhen to avoid
Desligar o Block Public Access sem necessidade; presigned URL longa com credencial temporária; mover objetos pequenos para classes com tamanho mínimo; bloquear o lifecycle esperando que a bucket policy resolva.Turning Block Public Access off without need; long presigned URLs with temporary credentials; moving tiny objects to classes with a minimum size; expecting a bucket policy to block lifecycle.Uma presigned URL gerada por uma role de 1 hora vale 7 dias se eu pedir?Does a presigned URL generated by a 1-hour role last 7 days if I ask?
Quais classes exigem restaurar o objeto antes de ler?Which classes require restoring the object before reading?
- What is Amazon S3?
- Download and upload objects with presigned URLs
- Understanding and managing Amazon S3 storage classes
- Managing the lifecycle of objects
- Hosting a static website using Amazon S3
Removido por falta de fonte: "$0,023 por GB", "uploads são mais caros", "entrada é grátis" e "egress costuma ser o maior custo". Ajustado: "index.html obrigatório" (a documentação fala em configurar um index document).Removed for lack of a source: "$0.023 per GB", "uploads cost more", "ingress is free" and "egress is usually the biggest cost". Adjusted: "index.html required" (the docs speak of configuring an index document).
Domínios e DNSDomains & DNS
O DNS traduz nomes (app.exemplo.com.br) em destinos. Os registros de uma zona dizem para onde cada nome aponta; o domínio em si é só o nome registrado.DNS translates names (app.example.com) into destinations. A zone's records say where each name points; the domain itself is just the registered name.
Tipos de registroRecord types
| TipoType | FunçãoPurpose |
|---|---|
| A | Aponta um nome para um endereço IPv4 (ex.: 192.0.2.1).Points a name to an IPv4 address (e.g. 192.0.2.1). |
| AAAA | Igual ao A, mas para IPv6 (ex.: 2001:0db8:85a3:0:0:8a2e:0370:7334).Same as A, but for IPv6 (e.g. 2001:0db8:85a3:0:0:8a2e:0370:7334). |
| CNAME | Mapeia um nome para outro nome. O protocolo DNS não permite CNAME no topo da zona (o apex, ex.: exemplo.com), só em subdomínios. E, se um nome tem CNAME, não pode ter outros registros.Maps a name to another name. The DNS protocol does not allow a CNAME at the top of the zone (the apex, e.g. example.com), only on subdomains. And a name with a CNAME cannot have other records. |
| Alias (Route 53) | Extensão do Route 53: aponta para certos recursos AWS (ALB, CloudFront, bucket S3 de site, API Gateway...). Pode ser usado no apex. Não é cobrada a consulta a alias para recursos AWS.A Route 53 extension: points to certain AWS resources (ALB, CloudFront, S3 website bucket, API Gateway...). It can be used at the apex. Alias queries to AWS resources are not charged. |
| NS | Identifica os name servers da zona, quem responde pelo DNS dela. Também delega subdomínios para outra zona.Identifies the zone's name servers, who answers for its DNS. Also delegates subdomains to another zone. |
| MX | Servidores de e-mail do domínio, cada um com uma prioridade (o menor valor vence). Deve apontar para o nome de um registro A/AAAA, não de um CNAME.The domain's mail servers, each with a priority (the lowest value wins). It must point to the name of an A/AAAA record, not a CNAME. |
| TXT | Uma ou mais strings entre aspas (até 255 caracteres cada; até 4.000 no valor). Muito usado para verificações e e-mail (SPF).One or more quoted strings (up to 255 characters each; up to 4,000 in the value). Widely used for verification and email (SPF). |
| SOA | Informações administrativas da zona (criado pelo Route 53).Administrative information about the zone (created by Route 53). |
| CAA | Define quais autoridades certificadoras podem emitir certificados para o domínio.Defines which certificate authorities may issue certificates for the domain. |
E-mail profissional no seu domínio exige o domínio e registros MX apontando para o provedor de e-mail. A AWS não recomenda mais o tipo SPF: use um TXT.Professional email on your domain needs the domain and MX records pointing to your email provider. AWS no longer recommends the SPF type: use a TXT record.
Provar que o domínio é seuProving the domain is yours
O padrão da AWS para certificados é a validação por DNS: o ACM entrega um CNAME único e você o cria na zona. Veja ACM.AWS's standard for certificates is DNS validation: ACM hands you a unique CNAME and you create it in the zone. See ACM.
Quando usarWhen to use
CNAME para subdomínios que apontam a outro nome; Alias para o apex e para recursos AWS; TXT/MX para verificação e e-mail.CNAME for subdomains pointing to another name; Alias for the apex and AWS resources; TXT/MX for verification and email.Quando evitarWhen to avoid
CNAME no apex; CNAME com outros registros no mesmo nome; MX apontando para um CNAME; SPF como tipo de registro.A CNAME at the apex; a CNAME together with other records on the same name; an MX pointing to a CNAME; SPF as a record type.Posso usar CNAME no domínio raiz?Can I use a CNAME on the root domain?
- Supported DNS record types (Route 53)
- Choosing between alias and non-alias records
- ACM DNS validation
Removido por falta de fonte: "você prova que é dono criando registros TXT no painel do registrador" (a documentação da AWS descreve CNAME para o ACM).Removed for lack of a source: "you prove ownership by creating TXT records in the registrar panel" (AWS docs describe a CNAME for ACM).
Route 53
Serviço de DNS da AWS. Você cria hosted zones com os registros dos seus domínios e aponta nomes para recursos como o load balancer.AWS's DNS service. You create hosted zones holding your domains' records and point names at resources such as the load balancer.
Hosted Zones
Uma hosted zone é um contêiner de registros que dizem como rotear o tráfego de um domínio e seus subdomínios. Ela tem o mesmo nome do domínio. O preço por zona e por consulta está na página de preços do Route 53 (o valor fixo da anotação antiga foi removido).A hosted zone is a container of records telling how to route traffic for a domain and its subdomains. It has the same name as the domain. Per-zone and per-query pricing is on the Route 53 pricing page (the old note's fixed value was removed).
PúblicaPublic
Registros que dizem como rotear o tráfego na internet (site, API, e-mail).Records saying how to route traffic on the internet (website, API, email).PrivadaPrivate
Registros que dizem como rotear o tráfego dentro de uma VPC, por exemplodb.interno.exemplo resolvendo só para quem está na rede.Records saying how to route traffic inside a VPC, for example db.internal.example resolving only for those on the network.NS & SOA
Ao criar uma zona pública, o Route 53 cria os registros NS (quatro name servers) e SOA. Para que a internet use essa zona, vá ao registrador do domínio (onde ele foi registrado) e configure os quatro name servers do NS padrão da zona. Para delegar um subdomínio a outra zona, crie um NS na zona do domínio raiz.When you create a public zone, Route 53 creates the NS records (four name servers) and SOA. For the internet to use that zone, go to the domain's registrar (where it was registered) and set the four name servers from the zone's default NS record. To delegate a subdomain to another zone, create an NS record in the root domain's zone.
Apontar o domínio para o ALBPointing the domain at the ALB
Crie um registro Alias do tipo A (e AAAA, se o ALB tiver IPv6) para o ALB. Quando o IP do load balancer muda, o Route 53 passa a responder com o novo sem você fazer nada. Para um alias a um recurso AWS você não define o TTL (vale o padrão do recurso) e não paga a consulta. O Alias funciona também no apex (exemplo.com.br), onde o CNAME não é permitido.Create an Alias record of type A (and AAAA, if the ALB has IPv6) for the ALB. When the load balancer's IP changes, Route 53 starts answering with the new one without you doing anything. For an alias to an AWS resource you do not set the TTL (the resource's default applies) and queries are not charged. Alias also works at the apex (example.com), where CNAME is not allowed.
- O alias precisa ter o mesmo nome e tipo da consulta (A ou AAAA) para ser respondido.The alias must match the query's name and type (A or AAAA) to be answered.
- Há políticas de roteamento além da simples: weighted, latency, failover, geolocation e geoproximity também aceitam alias.There are routing policies beyond simple: weighted, latency, failover, geolocation and geoproximity also accept alias.
- Para HTTPS, emita o certificado no ACM (a validação por DNS cria um CNAME nesta mesma zona).For HTTPS, issue the certificate in ACM (DNS validation creates a CNAME in this same zone).
Quando usarWhen to use
Domínios que apontam para recursos AWS (Alias); nomes internos por VPC (zona privada); controle do DNS junto da infraestrutura.Domains pointing to AWS resources (Alias); VPC-internal names (private zone); keeping DNS next to the infrastructure.Quando evitarWhen to avoid
Ter zonas duplicadas para o mesmo domínio sem saber qual está nos NS do registrador; CNAME no apex; esquecer de atualizar os NS no registrador.Having duplicate zones for the same domain without knowing which one the registrar's NS points to; a CNAME at the apex; forgetting to update the NS at the registrar.Onde coloco os 4 NS da Route 53 se comprei o domínio em outro lugar?Where do I put Route 53's 4 NS if I bought the domain elsewhere?
Alias ou CNAME para apontar o domínio raiz ao ALB?Alias or CNAME to point the root domain at the ALB?
- Working with hosted zones
- Choosing between alias and non-alias records
- Supported DNS record types
- ACM DNS validation
Movido: o item "ACM" que ficava aqui agora tem sua própria seção. Não verificado nesta rodada: compra/registro de domínio pelo Route 53 (a anotação antiga o citava; consulte a documentação de registro de domínios).Moved: the "ACM" item that lived here now has its own section. Not verified this round: buying/registering a domain through Route 53 (the old note mentioned it; see the domain registration docs).