Eu tenho duas contas da AWS e uma função em cada conta: Account-A have RoleA e Account-B have RoleB .
O RoleA assumirá o RoleB para poder se conectar em uma instância do EC2 na Conta-B por meio de ssm start-session
.
Usando o RoleA, sou capaz de assumir o RoleB e descrever as instâncias em Account-B usando aws cli, mas não consigo iniciar uma sessão ssm devido ao seguinte erro:
An error occurred (AccessDeniedException) when calling the TerminateSession operation: User: arn:aws:sts::222222222222:assumed-role/RoleB/RoleB-SSM-test is not authorized to perform: ssm:TerminateSession on resource: arn:aws:ssm:us-east-1:222222222222:assumed-role/RoleB/RoleB-SSM-test-000000000000 because no identity-based policy allows the ssm:TerminateSession action
Política RoleA:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Resource": [
"arn:aws:iam::222222222222:role/RoleB"
]
}
]
}
Política RoleB:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Action": [
"ssm:DescribeSessions",
"ssm:GetConnectionStatus",
"ssm:DescribeInstanceProperties",
"ec2:DescribeInstances",
"ssm:StartSession"
],
"Resource": [
"arn:aws:ec2:us-east-1:222222222222:instance/i-123456abc789102de",
"arn:aws:ssm:us-east-1:222222222222:document/SSM-SessionManagerRunShell",
"arn:aws:ssm:us-east-1:222222222222:document/AWS-StartSSHSession"
]
},
{
"Sid":"",
"Effect":"Allow",
"Action": [
"ssm:TerminateSession"
],
"Resource": "*",
"Condition": {
"StringLike": {
"ssm:resourceTag/aws:ssmmessages:session-id": [
"AROAXXXXXXXXXXXXX"
]
}
}
}
]
}
Originalmente, a ssm:TerminateSession
política in RoleB não tinha uma condição e estava junto com as outras ações, fiz essa alteração para tentar resolver esse erro, mas sem sucesso, mesma mensagem de erro.
O que estou fazendo de errado?
Algumas permissões estão faltando em sua política RoleB. De acordo com a documentação, você precisa
kms:GenerateDataKey
criptografar os dados da sessão e também acessar o documento gerado pelo SSM. Aqui está a política de exemplo na documentação:Ref: https://docs.aws.amazon.com/systems-manager/latest/userguide/getting-started-restrict-access-quickstart.html#restrict-access-quickstart-end-user