Desejo conceder permissões para uma sessão de função específica do AWS Identity and Access Management (IAM) com uma política baseada em identidade.
Resolução
Crie uma política do IAM para permitir o acesso a uma sessão de função do IAM específica, usando a chave de contexto de condição global da AWS, aws:userid.
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.
A chave de condição global aws:userid verifica se o ID exclusivo da entidade principal que faz a solicitação corresponde ao ID exclusivo especificado na política do IAM.
Por exemplo, se desejar permitir que uma sessão de função do IAM específica execute somente ações específicas do Amazon Elastic Compute Cloud (Amazon EC2) na sua conta da AWS. É possível usar uma política semelhante do IAM para:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowASpecificRoleSession",
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:RebootInstances",
"ec2:TerminateInstances"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:userid": "AROAXXXXXXXXXXXXXXXXX:<role-session-name>"
}
}
}
]
}
Essa política do IAM concede à instância do Amazon EC2 acesso à sessão de função do IAM na chave de condição global aws:userid. Outras sessões de função não podem realizar nenhuma ação do Amazon EC2.
Para obter o ID da função do IAM, execute o seguinte comando da AWS CLI:
$ aws iam get-role --role-name <rolename>
É obtido uma saída semelhante à descrita a seguir:
{
"Role": {
"Description": "Test Role",
"AssumeRolePolicyDocument":"<URL-encoded-JSON>",
"MaxSessionDuration": 3600,
"RoleId": "AROA1234567890EXAMPLE",
"CreateDate": "2019-11-13T16:45:56Z",
"RoleName": "Test-Role",
"Path": "/",
"RoleLastUsed": {
"Region": "us-east-1",
"LastUsedDate": "2019-11-13T17:14:00Z"
},
"Arn": "arn:aws:iam::123456789012:role/Test-Role"
}
}
Na saída, verifique a string RoleId. O ID da função é usado na política baseada em identidade para definir o escopo do acesso de instâncias do Amazon EC2 à sessão de função do IAM.
Observação: a chave de condição global aws:userid pode ser usada em qualquer tipo de política do IAM, como uma política baseada em identidade, recursos e limite de permissão e assim por diante. Os valores da chave de condição global aws:userid dependem do tipo de entidade principal que inicia a solicitação. Para determinar os valores para diferentes tipos de entidades principais, consulte Informações disponíveis em todas as solicitações.
Informações relacionadas
É possível restringir o acesso de usuários do IAM a recursos específicos do Amazon EC2?
Como usar tags de políticas do IAM para restringir a forma de criar uma instância do EC2 ou um volume do EBS?