É possível limitar uma chave EC2 apenas para ec2-associate-address?

6

Eu tenho uma instância regular do EC2 com um IP elástico. Nas poucas vezes em que a instância foi interrompida, apenas associei novamente manualmente o IP a ela por meio do console de gerenciamento da AWS. Agora estou pensando em migrá-lo para uma instância pontual, o que significa que eu quero uma maneira de reatribuir automaticamente o IP na inicialização se / quando a máquina estiver desligada devido ao preço fora do mercado. Como conseguir isso é bem descrito em vários lugares (por exemplo, aqui ).

Minha pergunta é:

Como muitas pessoas com esse problema, tenho receio de colocar meu arquivo de credenciais da AWS na própria instância. Tenho uma vaga lembrança de ver algo sobre isso ser possível criar chaves adicionais com permissões mais limitadas, mas estou tendo problemas para encontrar detalhes concretos. Então: é possível criar uma chave que eu possa colocar na máquina, sabendo que ela pode ser usada para pouco mais do que uma instância ec2-associada (mas não fazer login em outras instâncias ou geralmente executar um tumulto com minha conta da AWS), e como eu realmente conseguiria isso?

    
por timday 11.03.2012 / 12:35

1 resposta

8

Isso é realmente possível por meio do Gerenciamento de identidade e acesso (IAM) da AWS , que permite que você use controlar o acesso a serviços e recursos da AWS para seus usuários (facilitar o uso do IAM em vez das principais credenciais da conta para o uso diário da AWS é altamente recomendado).

Entre vários outros, o IAM permite o seguinte caso de uso:

Fine-grained access control to your AWS resources: IAM enables you to control access to AWS service APIs and to specific resources. IAM also enables you to add specific conditions to control how a user can use AWS, such as time of day, their originating IP address, or whether they are using SSL.

A respectiva granularidade varia entre os serviços AWS disponíveis (ela tende a aumentar com o tempo), mas, felizmente, a granularidade da API do EC2 é alta e o que você está procurando está prontamente disponível - por exemplo, você pode querer verificar o AWS Policy Generator recomendado, selecione o tipo Política do IAM e o serviço Amazon EC2 , que permitirá selecionar a ação AssociateAddress .

Consequentemente, você deve conseguir atingir seu objetivo criando um usuário dedicado do IAM para a tarefa em questão, elaborando uma política do IAM essencialmente limitada a AssociateAddress (talvez DisassociateAddress como bem) e atribuir essa política ao usuário do IAM - por exemplo, a política pode ser assim:

{
  "Statement": [
    {
      "Action": [
        "ec2:AssociateAddress",
        "ec2:DisassociateAddress"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
    
por 11.03.2012 / 15:22