Estou usando o comando "aws ec2 run-instance" (da CLI (AWS Command Line Interface) ) para iniciar uma instância do Amazon EC2 . Quero definir uma função do IAM para a instância do EC2 que estou iniciando. A função do IAM está configurada e posso usá-la com êxito ao iniciar uma instância da interface da web da AWS. Mas quando tento fazer isso usando esse comando e a opção "--iam-instance-profile", ele falhou. A execução de "ajuda das instâncias de execução do aws ec2" mostra os subcampos Arn = e Name = para o valor. Quando tento procurar o Arn usando "aws iam list-instance-profiles", é exibida a seguinte mensagem de erro:
Ocorreu um erro do cliente (AccessDenied): Usuário: arn: aws: sts :: xxxxxxxxxxxx: função assumida / shell / i-15c2766d não está autorizado a executar: iam: ListInstanceProfiles no recurso: arn: aws: iam :: xxxxxxxxxxxx: instance -perfil/
(onde xxxxxxxxxxxx é o número da minha conta da AWS com 12 dígitos)
Procurei a cadeia Arn pela interface do usuário da web e a usei via "--iam-instance-profile Arn = arn: aws: iam :: xxxxxxxxxxxx: instance-profile / shell" no comando run-instance, e que falhou com :
Ocorreu um erro do cliente (UnauthorizedOperation): Você não está autorizado a executar esta operação.
Se eu deixar completamente de fora a opção "--iam-instance-profile", a instância será iniciada, mas não terá a configuração de função do IAM necessária. Portanto, a permissão parece ter algo a ver com o uso de "--iam-instance-profile" ou com o acesso aos dados do IAM. Repeti várias vezes em caso de falhas da AWS (às vezes acontecem) e sem sucesso.
Suspeitei que talvez exista uma restrição de que uma instância com uma função do IAM não tenha permissão para iniciar uma instância com uma função do IAM mais poderosa. Mas, neste caso, a instância em que estou executando o comando tem a mesma função do IAM que estou tentando usar. chamado "shell" (embora eu também tenha tentado usar outro, sem sorte).
A definição de uma função do IAM nem sequer é permitida em uma instância (por meio de suas credenciais da função do IAM)?
Existe alguma permissão mais alta da função do IAM necessária para usar as funções do IAM do que a necessária apenas para iniciar uma instância simples?
"--Iam-instance-profile" é a maneira apropriada de especificar uma função do IAM?
Preciso usar um subconjunto da string Arn ou formatá-lo de outra maneira?
É possível configurar uma função do IAM que possa ser acessada por qualquer função do IAM (talvez um "Super Root IAM" ... componha esse nome)?
Para sua informação, tudo envolve o Linux em execução nas instâncias. Além disso, estou executando tudo isso em uma instância porque não consegui instalar essas ferramentas na minha área de trabalho. Isso e eu não quero colocar minhas credenciais de usuário do IAM em nenhum armazenamento da AWS, conforme recomendado pela AWS aqui .
depois de respondido:
Não mencionei a permissão de instância de inicialização de "PowerUserAccess" (vs. "AdministratorAccess") porque não sabia que era necessário um acesso adicional no momento em que a pergunta foi feita. Eu assumi que a função do IAM era "informação" anexada ao lançamento. Mas é realmente mais do que isso. É uma concessão de permissão.