Alteração na função do IAM para a instância do EC2 que não afeta a instância do EC2 em execução

1

Eu tenho uma função do IAM para a instância do EC2 (chamada de Perfil da instância) com duas políticas anexadas, fornecendo acesso total ao SQS e S3. Há uma instância do EC2 em execução associada a essa função. Ele executa vários aplicativos, que usam credenciais temporárias e tudo está funcionando bem.

Neste momento, uma das minhas aplicações também precisa de acesso ao SNS. Modifiquei o papel do IAM, adicionando uma política Inline com o gerador de políticas, permitindo determinadas chamadas de API para determinado tópico do SNS. No entanto, após a modificação da função do IAM, ao tentar aws sns list-topics , recebo o seguinte erro (os respectivos arn foram substituídos pelo triplo X):

User: XXX is not authorized to perform: SNS:ListTopics on resource: XXX:*

A adição de política exige que a instância seja reiniciada? Ou eu tenho que esperar as credenciais temporárias ( /latest/meta-data/iam/security-credentials/iam-role-name ) expirarem? Posso de alguma forma forçar a expiração dessas credenciais?

EDITAR : A última pergunta parece ser respondida por FAQ da IAM . Credenciais temporárias não podem ser reativadas ou estendidas.

    
por Jacek Prucia 24.06.2015 / 17:35

1 resposta

1

Depois de muitas abordagens diferentes, descobri que limitar minha política a uma única fila estava causando todos os problemas. Eu assumi que quando a política se aplica à fila única e você faz ListTopics, então você terá apenas o tópico que você tem acesso. No entanto, o meu SNS tinha vários outros tópicos e provavelmente a sua existência no resultado do ListTopics foi considerada uma violação da política. Quando eu substituí o nome do tópico específico por '*' e salvei a política, então immidiatelly (sem necessidade de expiração de credenciais ou reinicialização da instância do EC2) ela começou a funcionar.

    
por 25.06.2015 / 15:56