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

Quando o elemento Principal é um usuário federado, a variável de política ${aws:userName} do AWS Identity and Access Management (IAM) não está na solicitação. Em vez disso, use a variável de política ${aws:userID} com chamadas de API GetFederationToken. Para obter mais informações, consulte Onde você pode usar variáveis de política.

No exemplo de política JSON a seguir, a variável de política ${aws:userName} é 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.

O valor do parâmetro Name para chamadas da API GetFederationToken deve seguir as diretrizes de GetFederationToken. Por exemplo, se você especificar o nome amigável Bob, o formato correto será 123456789102:Bob. Esse formato nomeia sua sessão e permite acesso ao bucket do Amazon Simple Storage Service (Amazon S3) que tem um prefixo correspondente.

Observação: o exemplo anterior pressupõe que o nome amigável especificado pelo chamador da variável aws:userid seja um identificador exclusivo. Um nome amigável exclusivo não permite que outro usuário com o mesmo nome amigável acesse os recursos especificados na política JSON. 

Informações relacionadas

Permissões para GetFederationToken

Elementos de política do IAM: variáveis e etiquetas

Identificadores do IAM

AWS OFICIAL
AWS OFICIALAtualizada há um ano