Como uso variáveis de política do IAM com usuários federados?

2 minuto de leitura
0

Quando eu uso a API GetFederationToken para gerar credenciais temporárias, a variável de política ${aws:Username} não funciona.

Resolução

Ao usar a API GetFederationToken, use a variável de política ${aws:userID} em vez da variável de política ${aws:username}. Isso ocorre porque a variável ${aws:userName} não está presente se a entidade principal for um usuário federado. Para obter mais informações, veja onde você pode usar variáveis de política.

A política do IAM JSON a seguir fornece um exemplo em que a variável de política ${aws:username} foi substituída pela variável de política ${aws:userID}:

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Sid":"AllowListingOfUserFolder",
         "Action":[
            "s3:ListBucket"
         ],

         "Effect":"Allow",

         "Resource":[
            "arn:aws:s3:::TESTBUCKET"
         ],
         "Condition":{
            "StringLike":{
               "s3:prefix":[
                  "TESTBUCKET/${aws:userid}/*"
               ]
            }
         }
      },
      {
         "Sid":"AllowAllS3ActionsInUserFolder",
         "Action":[
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:s3:::TESTBUCKET/${aws:userid}/*"
         ]
      }
   ]
}

O valor da variável aws:userid deve ser “ACCOUNTNUMBER:caller-specified-name”.

Ao chamar a API GetFederationToken, o valor do parâmetro Name deve seguir as diretrizes estabelecidas em GetFederationToken. Por exemplo, se você especificar o nome amigável Bob, o formato correto será “123456789102:Bob”. Isso nomeia sua sessão e permite acesso ao bucket do Amazon Simple Storage Service (Amazon S3) com um prefixo correspondente.

Observação: Este exemplo pressupõe que a parte do nome especificado pelo chamador (nome amigável) da variável aws:userid seja exclusiva. Um nome amigável exclusivo impede o cenário em que outro usuário com o mesmo nome amigável não tenha acesso aos recursos especificados na política JSON. Para obter mais informações, consulte Identificadores exclusivos.


Informações relacionadas

Permissões para GetFederationToken

Máquina de venda automática de tokens para registro de identidade - exemplo de aplicativo web java

Elementos da política do IAM: variáveis e tags

Identificadores do IAM

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos