Como posso evitar um erro PackedPolicyTooLarge ao assumir um perfil do IAM por meio do AWS STS?

4 minuto de leitura
0

Quero assumir um perfil do AWS Identity and Access Management (IAM) por meio do AWS Security Token Service (STS) sem gerar um erro PackedPolicyTooLarge.

Breve descrição

Ao assumir um perfil do IAM por meio do STS, você pode receber uma mensagem de erro PackedPolicyTooLarge com um dos seguintes detalhes:

  • O tamanho compactado das tags de sessão consome n% do espaço alocado.
  • A política compactada consome n% do espaço alocado. Use uma política menor.
    Observação: n representa a porcentagem do espaço usado no PackedPolicySize.

O STS permite transmitir os seguintes tipos de tags de sessão:

  • Políticas de sessão em linha
  • Política gerenciada do nome do recurso da Amazon (ARNs)
  • Os ARNs da política gerenciada pelo cliente quando você assume um perfil do IAM.

O STS armazena os dados relacionados às tags, políticas e ARNs no token de sessão da AWS. Todos esses dados contam para o limite de PackedPolicySize.

Observação: as políticas gerenciadas pelo cliente devem estar na mesma conta da AWS que o perfil do IAM que você está assumindo.

Quando definidas, as tags de sessão, as políticas de sessão em linha e os ARNs de políticas gerenciadas aumentam o tamanho de um token de sessão da AWS. No entanto, há um limite finito de tamanho de token que se aplica, independentemente do número de tags de sessão e cotas de política de sessão usadas. Exceder o limite finito gera um erro.

As políticas de sessão em linha e as tags de sessão são serializadas e compactadas no token da sessão. Isso torna difícil determinar quanto do PackedPolicySize é usado antes de fazer uma chamada AssumeRole para o STS.

Observação: os registros do AWS CloudTrail para AssumeRole, AssumeRoleWithSAML e AssumeRoleWithWebIdentity mostram o PackedPolicySize. Além disso, como parte da resposta, a API da AWS retorna a porcentagem do PackedPolicySize usado na solicitação.

Resolução

Reduza a extensão da política de sessão embutida ou das tags de sessão (chaves e valores) que você passa para o STS ao assumir uma função. As seções a seguir fornecem maneiras de limitar os dados para tags de sessão e políticas de sessão em linha.

Tags de sessão

  • Abrevie ou reduza as chaves ou valores da tag de sessão. As tags de sessão são normalmente usadas para controle de acesso baseado em atributos (ABAC). Para fazer uso efetivo de seu espaço de política para o ABAC, coloque nas tags de sessão somente as informações necessárias para autorizar decisões.
  • Para tags de sessão para fins não ABAC, como informações de auditoria, substitua os registros nas tags de sessão por referências a um sistema externo de registro.
  • Seja consistente quanto ao tamanho das letras, como o uso de letras minúsculas para todas as chaves e valores da tag. Os tokens de sessão da AWS armazenam chaves e valores de tags compactados, e os algoritmos de compactação funcionam melhor quando você usa um caso com caracteres consistentes.
  • Se você colocar informações de identidade dentro das tags de sessão, é uma prática recomendada movê-las para o SourceIdentity que tem uma cota separada.

Políticas de sessão em linha

  • Remova os elementos de ID da instrução (Sid) das políticas da sessão. Sid é um elemento opcional nas declarações de política da sessão.
  • Use caracteres curinga para encurtar ações do IAM e ARNs de recursos, quando apropriado.
  • Passe ARNs de políticas gerenciadas em vez de um documento de política. O ARN de políticas gerenciadas é apenas uma referência a uma política e ocupa menos espaço dentro do token. Você pode aprovar políticas gerenciadas e uma política de sessão.
  • Para criar políticas que concedam acesso somente condicionalmente, use tags de sessão com políticas gerenciadas ou políticas embutidas anexadas à função.
AWS OFICIAL
AWS OFICIALAtualizada há um ano