Há várias contas da AWS que eu não controle. Solicitei que os proprietários da conta implantassem uma função do IAM, TrustingSecurityAuditor , em suas contas, o que concede o direito de assumir a função TrustingSecurityAuditor para uma função diferente do IAM em minha conta da AWS, TrustedSecurityAuditor . ( Documentos para delegar acesso )
Isso funciona muito bem e permite que eu e minha equipe de segurança forneçam serviços de auditoria de segurança para esses outros titulares de conta na empresa. Para fazer isso, criamos uma instância ec2 com a função TrustedSecurityAuditor IAM e nosso código solicita credenciais temporárias de cada uma das contas usando STS fazendo um AssumeRole para o papel TrustingSecurityAuditor de cada conta.
Agora, quero criar um serviço adicional em execução em uma instância ec2 diferente na minha conta, que pode não apenas assumir o papel dessas contas "Confiantes", mas também fazer outras coisas em minha conta, como acessar o DynamoDB da minha conta. informação.
Se eu aplicar a função TrustedSecurityAuditor à instância, não tenho as permissões locais de que preciso (como o acesso ao DynamoDB).
Não posso aplicar várias funções do IAM a uma instância (a menos que esteja enganado).
Quando eu tento criar uma nova função, MyNewService , com acesso ao DynamoDB que pode AssumeRole à função TrustedSecurityAuditor na esperança de usar essas credenciais STS para fazer uma segunda AssumeRole com a TrustingSecurityAuditor papel na conta externa eu encontro este problema:
Eu sou capaz de AssumeRole da função MyNewService para a função TrustedSecurityAuditor , mas quando eu faço a segunda AssumeRole para a função TrustingSecurityAuditor , a AWS retorna o erro
User: arn:aws:sts::123456789012:assumed-role/TrustedSecurityAuditor/MyNewService is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::123456789012:role/TrustingSecurityAuditor
A razão para isso é que o "usuário" que está tentando o AssumeRole é
arn:aws:sts::123456789012:assumed-role/TrustedSecurityAuditor/MyNewService
não
arn:aws:sts::123456789012:assumed-role/TrustedSecurityAuditor
O que isso implica é que você não pode encadear seu AssumeRole s porque o ARN de origem de uma chamada, quando ela vem de uma função assumida, não é apenas a função assumida, mas a função assumida com o rolename do assumidor preso no final.
Uma solução que estou relutante em usar é que eu poderia adicionar as permissões necessárias, por exemplo, a capacidade de usar o DynamoDB para a função TrustedSecurityAuditor . A razão pela qual estou relutante é que só preciso dessa permissão na instância MyNewService , não na minha instância original, que faz apenas auditoria de segurança e não precisa acessar o DynamoDB.
Alguma sugestão de como realizar o que estou procurando?