servidores peru nube cli aws amazon-web-services aws-cli amazon-iam aws-sts

amazon web services - peru - ¿Forma rápida de obtener el número de cuenta de AWS de las herramientas de AWS CLI?



aws login account (4)

Al buscar una forma rápida de obtener mi número de cuenta, originalmente pensé en usar aws iam get-account-authorization-details --max-items 1 pero hay varios problemas para hacerlo de esta manera. ¿Hay alguna manera de hacer esto que podría no cruzar los orígenes de la cuenta?


Mi método favorito es usar aws iam get-user [--profile <profile>] ya que solo necesita el rol de autoservicio de IAM para que esto funcione.



Según mi respuesta relacionada para la CLI de AWS PowerShell , su ID de cuenta forma parte del Arn de recursos que crea ... y de aquellos que se crean automáticamente para usted. Algunos recursos también lo incluirán como un Id. De propietario.

El grupo de seguridad predeterminado se crea automáticamente en la VPC predeterminada de cada región como un grupo de seguridad reservado. De la documentation :

No puede eliminar un grupo de seguridad predeterminado. Si intenta eliminar el grupo de seguridad predeterminado EC2-Classic, obtendrá el siguiente error: Client.InvalidGroup.Reserved: el grupo de seguridad ''default'' está reservado. Si intenta eliminar un grupo de seguridad predeterminado de VPC, obtendrá el siguiente error: Client.CannotDelete: el grupo especificado: "sg-51530134" nombre: "predeterminado" no puede ser eliminado por un usuario.

Esto lo convierte en un candidato confiable para recuperar nuestro ID de cuenta, siempre y cuando esté en EC2 classic o tenga una VPC predeterminada (* vea los casos límite si no lo tiene).

Ejemplo:

aws ec2 describe-security-groups / --group-names ''Default'' / --query ''SecurityGroups[0].OwnerId'' / --output text

Esto usa --query para filtrar el resultado hasta el "ID del propietario" para el primer resultado de esta solicitud, y luego usa --output para mostrar su ID de cuenta como texto sin formato:

123456781234

Casos de borde:

(Gracias @kenchew) Tenga en cuenta que si ha eliminado su VPC predeterminada en una región determinada, este grupo de seguridad ya no existe y debe usar una de estas soluciones alternativas:

  • consulta STS get-caller-identity, por @Taras
  • use el primer grupo de seguridad devuelto, por @Phillip

Otras lecturas:


Si está ejecutando en un servidor que se ejecuta con un rol asumido, no puede llamar a aws sts get-caller-identity . Además, con describe-security-groups no siempre se puede usar el filtro --group-names (no funciona si no tiene una VPC predeterminada), así que solo elija el primer grupo de seguridad. He encontrado que este es el más confiable, independientemente de qué tipo de autenticación use o qué tipo de VPC tenga.

aws ec2 describe-security-groups --query ''SecurityGroups[0].OwnerId'' --output text