Regras do Grupo de Segurança do AWS EC2: está especificando um grupo de segurança como uma fonte não considerada mais permissiva que um endereço IP específico?

1

Eu não tinha certeza se este é o sub-StackExchange correto para essa pergunta, então sinta-se à vontade para me iniciar em outro lugar, se necessário.

Estou tentando trabalhar com dois servidores EC2: um é uma "estação de trabalho" e o outro um "nó" (pense em Chef). O grupo de segurança da estação de trabalho começou com apenas uma regra de entrada que permitia acesso à porta 22 do endereço IP da máquina local.

Eu queria que o servidor do nó fosse acessível a partir do servidor da estação de trabalho, mas também da minha máquina local. Então, em vez de criar um novo grupo de segurança, acabei de adicionar uma regra ao grupo de segurança usado na estação de trabalho com seu próprio id de grupo de segurança como a origem. Em inglês simples, o que eu estava procurando era um grupo de segurança que permitisse acesso na porta 22 do endereço IP da máquina local ou de qualquer máquina que também tivesse o grupo de segurança aplicado. Este foi o meu entendimento de como o grupo de segurança padrão funciona (todo o tráfego permitido, com a origem sendo o ID do grupo de segurança auto-referencial).

Na minha opinião, isso também estava de acordo com o que eu achei aqui nos documentos:

If there is more than one rule for a specific port, we apply the most permissive rule. For example, if you have a rule that allows access to TCP port 22 (SSH) from IP address 203.0.113.1 and another rule that allows access to TCP port 22 from everyone, everyone has access to TCP port 22.

Meu caso é obviamente um pouco diferente, pois tenho uma regra que permite acesso específico à porta 22 de um endereço IP específico e uma regra que permite acesso específico à porta 22 de um grupo de segurança em vez de "todos", mas uma fonte de grupo de segurança também não seria considerada mais permissiva do que um endereço IP específico e, portanto, permitiria o cenário descrito acima?

Infelizmente, com o grupo de segurança configurado dessa forma, só consigo fazer o SSH no nó da minha máquina local. Quando eu tento o SSH da estação de trabalho no EC2 (que compartilha o mesmo grupo de segurança), ele expira.

Alguma idéia do que eu posso estar fazendo errado / ausente?

    
por sixty4bit 07.07.2016 / 19:33

2 respostas

2

I just added a rule to the security group used on the workstation with its own security group id as the source.

Isso é o oposto do que você precisava fazer.

Você precisa adicionar uma regra ao grupo de segurança do nó, especificando o grupo de segurança da estação de trabalho como a origem ... não o grupo de segurança da corporação. Uma regra de entrada auto-referencial em um grupo de segurança significa que as máquinas que são membros desse grupo podem acessar essa porta em outros membros desse mesmo grupo.

Não sei por que a documentação declara um princípio tão óbvio de uma maneira tão complicada ... parece apenas servir para confundir a questão. Quando qualquer tráfego corresponde a qualquer regra em um grupo de segurança, o tráfego é permitido. O conceito de especificidade de regras parece uma distração aqui.

    
por 08.07.2016 / 00:53
1

O que de fato você fez: você permite o acesso à estação de trabalho a partir do seu IP e de qualquer outra instância no mesmo grupo (não importa se não há nenhum agora, se você adicionar uma instância a esse grupo no futuro - ele terá acesso ao ssh também.

O que você precisa fazer: configure o SG ao qual o nó pertence. Adicione uma regra ao seu IP e regra com o grupo de estações de trabalho como a fonte. O último será lido como 'permitir acesso à porta 22 de todas as instâncias que estão no workstation_group.

"Regra permissiva" note: não sei se você está familiarizado com o CIDR e as sub-redes, mas esse é o tópico que você precisa saber para entendê-lo em detalhes. Vamos ver em dois casos. Caso 1, duas regras:

allow from 192.168.0.0/24
allow from 192.168.1.0/24

Aqui, a "regra da regra mais permissiva" não será aplicada, porque os intervalos não estão sobrepostos: na verdade, eles significam

allow from 192.168.0.0 to 192.168.0.255
allow from 192.168.1.0 to 192.168.1.255

Caso2

allow from 192.168.0.0/22 (note '2' at the end)
allow from 192.168.1.0/24

Aqui, a regra será aplicada, porque os intervalos são:

allow from 192.168.0.0 to 192.168.3.255
allow from 192.168.1.0 to 192.168.1.255

Então o segundo intervalo está dentro do primeiro como uma pequena caixa dentro de um maior. "O mais permissivo" aqui significa que a primeira linha funcionará, o intervalo mais amplo.

Sinta-se à vontade para verificar ipcalc para obter detalhes.

    
por 08.07.2016 / 15:28