Procurando uma maneira rápida de obter o número da minha conta, pensei originalmente em usar, aws iam get-account-authorization-details --max-items 1
mas há vários problemas em fazer isso. Existe uma maneira de fazer isso que não cruze as origens da conta?
99
aws sts get-caller-identity|jq -r ".Account"
aws sts get-caller-identity --output json | jq '.Account' | sed 's/\"//g'
--query 'Account'
peça.jq
envolvimento ou a instalação em um sistema. Alguns servidores proíbem instalações de pacotes irrelevantes devido à segurança. Você poderia fazer algo assim,aws sts get-caller-identity --output json |grep Account |awk -F ': "' '{print$2}' |sed 's/\".*//'
mas é um pouco chato e você também pode fazer--query 'Account' --output text
nesse ponto.De minha resposta relacionada ao AWS PowerShell CLI , o ID da sua conta faz parte do Arn de recursos que você cria ... e aqueles que são criados automaticamente para você. Alguns recursos também irão listá-lo como um OwnerId.
O grupo de segurança padrão é criado automaticamente para você no VPC padrão de cada região como um grupo de segurança reservado. Da documentação :
Isso o torna um candidato confiável para recuperar nosso ID de conta, contanto que você esteja no EC2 classic ou tenha um VPC padrão (* consulte os casos extremos, se não tiver).
Exemplo:
Isso é usado
--query
para filtrar a saída para o "ID do proprietário" para o primeiro resultado desta solicitação e, em seguida, usa--output
para produzir o ID da sua conta como texto simples:Casos extremos:
(Obrigado @kenchew) Observe que se você excluiu seu VPC padrão em uma determinada região, este grupo de segurança não existe mais e você deve usar uma destas soluções alternativas:
Leitura adicional:
fonte
Se você estiver executando em um servidor que está executando com uma função assumida, você não pode chamar
aws sts get-caller-identity
. Além disso,describe-security-groups
nem sempre com você pode usar o--group-names
filtro (ele não funciona se você não tiver um VPC padrão), então apenas escolha o primeiro grupo de segurança. Eu descobri que este é o mais confiável, independentemente do tipo de autenticação que você usa ou que tipo de VPC você tem.fonte
Meu método favorito é usar,
aws iam get-user [--profile <profile>]
pois você só precisa da função de autoatendimento do IAM para que isso funcione.fonte