Implemente controles de acesso preventivos baseados em atributos para sub-redes públicas - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implemente controles de acesso preventivos baseados em atributos para sub-redes públicas

Criado por Joel Alfredo Nunez Gonzalez () e Samuel Ortega Sancho () AWS AWS

Ambiente: PoC ou piloto

Tecnologias: segurança, identidade, conformidade; rede; entrega de conteúdo

AWSserviços: AWS Organizations; AWS Identity and Access Management

Resumo

Em arquiteturas de rede centralizadas, a inspeção e as nuvens privadas virtuais de borda (VPCs) concentram todo o tráfego de entrada e saída, como o tráfego de e para a Internet. No entanto, isso pode criar gargalos ou resultar no alcance dos limites das cotas de AWS serviço. A implantação da segurança de ponta da rede junto com as cargas de trabalho VPCs fornece uma escalabilidade sem precedentes em comparação com a abordagem centralizada mais comum. Isso é chamado de arquitetura de borda distribuída.

Embora a implantação de sub-redes públicas em contas de workload possa oferecer benefícios, ela também introduz novos riscos de segurança, pois aumenta a superfície de ataque. Recomendamos que você implante somente recursos do Elastic Load Balancing (ELB), como Application Load Balancers, ou NAT gateways nas sub-redes públicas desses. VPCs O uso de balanceadores de carga e NAT gateways em sub-redes públicas dedicadas ajuda a implementar um controle refinado do tráfego de entrada e saída.

O controle de acesso baseado em atributos (ABAC) é a prática de criar permissões refinadas com base nos atributos do usuário, como departamento, função e nome da equipe. Para obter mais informações, consulte ABAC para AWS. ABACpode fornecer grades de proteção para sub-redes públicas em contas de carga de trabalho. Isso ajuda as equipes de aplicativos a serem ágeis, sem comprometer a segurança da infraestrutura.

Esse padrão descreve como ajudar a proteger sub-redes públicas implementando por ABAC meio de uma política de controle de serviço (SCP) em AWS Organizations e políticas em AWS Identity and Access Management (IAM). Você aplica o SCP a uma conta de membro de uma organização ou a uma unidade organizacional (OU). Essas ABAC políticas permitem que os usuários implantem NAT gateways nas sub-redes de destino e os impedem de implantar outros recursos do Amazon Elastic Compute Cloud (EC2Amazon), EC2 como instâncias e interfaces de rede elástica.  

Pré-requisitos e limitações

Pré-requisitos

  • Uma organização em AWS Organizations

  • Acesso administrativo à conta raiz do AWS Organizations

  • Na organização, uma conta de membro ativa ou OU para testar o SCP

Limitações

  • SCPNesta solução, não impede que AWS serviços que usam uma função vinculada a serviços implantem recursos nas sub-redes de destino. Exemplos desses serviços são Elastic Load Balancing (ELB), Amazon Elastic Container Service (AmazonECS) e Amazon Relational Database Service (Amazon). RDS Para obter mais informações, consulte SCPos efeitos nas permissões na documentação do AWS Organizations. Implemente controles de segurança para detectar essas exceções.

Arquitetura

Pilha de tecnologias de destino

  • SCPaplicado a uma AWS conta ou OU em AWS Organizations

  • As seguintes IAM funções:

    • AutomationAdminRole— Usado para modificar tags de sub-rede e criar VPC recursos após a implementação do SCP

    • TestAdminRole— Usado para testar se SCP está impedindo que outros IAM diretores, incluindo aqueles com acesso administrativo, realizem as ações reservadas para o AutomationAdminRole

Arquitetura de destino

As tags impedem que os usuários implantem recursos que não sejam NAT gateways em sub-redes públicas.
  1. Você cria a AutomationAdminRole IAM função na conta de destino. Esse perfil tem permissões para gerenciar recursos de rede. Observe as seguintes permissões que são exclusivas para esse perfil:

    • Essa função pode criar VPCs e publicar sub-redes.

    • Esse perfil pode modificar as atribuições de tags para as sub-redes de destino.

    • Esse perfil pode gerenciar suas próprias permissões.

  2. Em AWS Organizations, você aplica o SCP à AWS conta de destino ou UO. Para ver um exemplo de política, consulte Informações adicionais sobre esse padrão.

  3. Um usuário ou uma ferramenta no pipeline de CI/CD pode assumir a função AutomationAdminRole de aplicar a tag SubnetType às sub-redes de destino.

  4. Ao assumir outras IAM funções, IAM os diretores autorizados em sua organização podem gerenciar NAT gateways nas sub-redes de destino e outros recursos de rede permitidos na AWS conta, como tabelas de rotas. Use IAM políticas para conceder essas permissões. Para obter mais informações, consulte Gerenciamento de identidade e acesso para a Amazon VPC.

Automação e escala

Para ajudar a proteger sub-redes públicas, as AWStags correspondentes devem ser aplicadas. Depois de aplicar oSCP, os NAT gateways são o único tipo de EC2 recurso da Amazon que usuários autorizados podem criar em sub-redes que têm a tag. SubnetType:IFA (IFAsignifica ativos voltados para a Internet.) SCPIsso impede a criação de outros EC2 recursos da Amazon, como instâncias e interfaces de rede elásticas. Recomendamos que você use um pipeline de CI/CD que assuma a AutomationAdminRole função de criar VPC recursos para que essas tags sejam aplicadas adequadamente às sub-redes públicas.

Ferramentas

AWSserviços

  • AWSO Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.

  • AWSOrganizations é um serviço de gerenciamento de contas que ajuda você a consolidar várias AWS contas em uma organização que você cria e gerencia centralmente. Em AWS Organizations, você pode implementar políticas de controle de serviço (SCPs), que são um tipo de política que você pode usar para gerenciar permissões em sua organização.

  • A Amazon Virtual Private Cloud (AmazonVPC) ajuda você a lançar AWS recursos em uma rede virtual que você definiu. Essa rede virtual se assemelha a uma rede tradicional que você operaria em seu próprio data center, com os benefícios de usar a infraestrutura escalável do. AWS

Épicos

TarefaDescriçãoHabilidades necessárias

Crie um perfil de administrador de teste.

Crie uma IAM função nomeada TestAdminRole na AWS conta de destino. Anexe a IAM política AdministratorAccessAWSgerenciada à nova função. Para obter instruções, consulte Criação de uma função para delegar permissões a um IAM usuário na IAM documentação.

AWSadministrador

Crie o perfil de administrador de automação.

  1. Crie uma IAM função nomeada AutomationAdminRole na AWS conta de destino.

  2. Anexe a IAM política AdministratorAccessAWSgerenciada à nova função.

Veja a seguir um exemplo de política de confiança que você poderia usar para testar a função da conta 000000000000.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::000000000000:root" ] }, "Action": "sts:AssumeRole", "Condition": {} } ] }
AWSadministrador

Crie e anexe SCP o.

  1. Ao usar o código de exemplo fornecido na seção Informações adicionais, crie uma política de controle de segurança. Para obter instruções, consulte Creating an SCP na documentação da AWS Organizations.

  2. Anexe o SCP à AWS conta ou OU de destino. Para obter instruções, consulte Anexar e desanexar políticas de controle de serviço na documentação da AWS Organizations.

AWSadministrador
TarefaDescriçãoHabilidades necessárias

Crie uma sub-rede VPC or.

  1. Assuma a TestAdminRole função na AWS conta de destino.

  2. Tente criar uma VPC ou uma nova sub-rede pública em uma existenteVPC. Para obter instruções, consulte Criar umaVPC, sub-redes e outros VPC recursos na documentação da AmazonVPC. Você não deveria ser capaz de criar esses recursos.

  3. Assuma o perfil AutomationAdminRole e repita a etapa anterior. Agora você deveria poder criar recursos de rede.

AWSadministrador

Gerenciar tags.

  1. Assuma a TestAdminRole função na AWS conta de destino.

  2. Adicione uma tag SubnetType:IFA a uma sub-rede pública disponível. Você deve ser capaz de adicionar essa tag. Para obter instruções sobre como adicionar tags por meio da interface de linha de AWS comando (AWSCLI), consulte create-tags na AWS CLI Referência de comandos.

  3. Sem alterar suas credenciais, tente modificar a tag SubnetType:IFA atribuída a essa sub-rede. Você não deve conseguir modificar essa tag.

  4. Assuma o perfil AutomationAdminRole e repita as etapas anteriores. Essa função deve ser capaz de adicionar e modificar essa tag.

AWSadministrador

Implante recursos nas sub-redes de destino.

  1. Assumir a função TestAdminRole.

  2. Para uma sub-rede pública que tenha a SubnetType:IFA tag, tente criar uma EC2 instância. Para obter instruções, consulte Iniciar uma instância na EC2 documentação da Amazon. Nessa sub-rede, você não deve ser capaz de criar, modificar ou excluir nenhum EC2 recurso da Amazon, exceto NAT gateways.

  3. Na mesma sub-rede, crie um NAT gateway. Para obter instruções, consulte Criar um NAT gateway na VPC documentação da Amazon. Você deve ser capaz de criar, modificar ou excluir NAT gateways nessa sub-rede.

AWSadministrador

Gerencie a AutomationAdminRole função.

  1. Assumir a função TestAdminRole.

  2. Tente modificar a função AutomationAdminRole. Para obter instruções, consulte Modificação de uma função na IAM documentação. Você não deve ser capaz de modificar essa função.

  3. Assuma o perfil AutomationAdminRole e repita a etapa anterior. Agora você deveria poder modificar a função.

AWSadministrador
TarefaDescriçãoHabilidades necessárias

Limpe os recursos implantados.

  1. Separe-os SCP da AWS conta ou da OU. Para obter instruções, consulte Separando um SCP na documentação da AWS Organizations.

  2. Exclua SCP o. Para obter instruções, consulte Excluindo uma SCP (documentação da AWS Organizations).

  3. Exclua a função AutomationAdminRole e a função TestAdminRole. Para obter instruções, consulte Excluir funções na IAM documentação.

  4. Exclua todos os recursos de rede, como VPCs sub-redes, que você criou para essa solução.

AWSadministrador

Recursos relacionados

AWSdocumentação

AWSReferências adicionais

Mais informações

A política de controle de serviço a seguir é um exemplo que você pode usar para testar essa abordagem em sua organização.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyVPCActions", "Effect": "Deny", "Action": [ "ec2:CreateVPC", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateInternetGateway", "ec2:DeleteVPC", "ec2:DeleteRoute", "ec2:DeleteSubnet", "ec2:DeleteInternetGateway" ], "Resource": [ "arn:aws:ec2:*:*:*" ], "Condition": { "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "AllowNATGWOnIFASubnet", "Effect": "Deny", "NotAction": [ "ec2:CreateNatGateway", "ec2:DeleteNatGateway" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*" ], "Condition": { "ForAnyValue:StringEqualsIfExists": { "aws:ResourceTag/SubnetType": "IFA" }, "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "DenyChangesToAdminRole", "Effect": "Deny", "NotAction": [ "iam:GetContextKeysForPrincipalPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfilesForRole", "iam:ListRolePolicies", "iam:ListRoleTags" ], "Resource": [ "arn:aws:iam::*:role/AutomationAdminRole" ], "Condition": { "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "allowbydefault", "Effect": "Allow", "Action": "*", "Resource": "*" } ] }