¿Hay alguna manera de enumerar todos los recursos en AWS

138

¿Hay alguna manera de enumerar todos los recursos en AWS? Para todas las regiones, todos los recursos ... Como enumerar todas las instancias EC2, todas las VPC, todas las API en API Gateway, etc. Me gustaría enumerar todos los recursos para mi cuenta, ya que es difícil para mí encontrar qué recursos puedo renunciar ahora.

Lakin Lu
fuente
1
Eche un vistazo a mi respuesta a esta pregunta: stackoverflow.com/questions/43984337/multiple-aws-reigon/… Debería ser suficiente para comenzar.
Colwin
2
Puede crear un Grupo de recursos para toda la región y para todos los servicios que necesita ver. Grupo de recursos le mostrará todos estos recursos en un solo lugar. puedes usar aws cli para esto también. aws.amazon.com/blogs/aws/resource-groups-and-tagging
Ashwini

Respuestas:

8

Editar: esta respuesta está en desuso y es incorrecta . Hay varias formas de enumerar los recursos de AWS (el Editor de etiquetas de AWS, etc.). Verifique las otras respuestas para más detalles.


No.

Cada servicio de AWS (por ejemplo, Amazon EC2, Amazon S3) tiene su propio conjunto de llamadas API. Además, cada región es independiente.

Para obtener una lista de todos los recursos, deberá realizar llamadas API a cada servicio en cada región.

Es posible que desee activar AWS Config :

AWS Config proporciona una vista detallada de la configuración de los recursos de AWS en su cuenta de AWS. Esto incluye cómo los recursos están relacionados entre sí y cómo se configuraron en el pasado para que pueda ver cómo cambian las configuraciones y las relaciones con el tiempo.

Sin embargo, AWS Config solo recopila información sobre recursos relacionados con EC2 / VPC, no todo en su cuenta de AWS.

John Rotenstein
fuente
14
Esta respuesta es incorrecta. De hecho, puede enumerar todos los servicios en todas las regiones utilizando el Explorador de costos.
Carles Alcolea
9
Esta respuesta es probablemente obsoleta. Ahora, como mencionan algunas personas aquí, puede usar el Administrador de etiquetas o el 'Costo mensual por servicio' en el Explorador de costos .
maximpa
AWS Config parecía funcionar para mí. Quería encontrar una instantánea que había tomado por otro motivo y me olvidé, y aparentemente eliminé la instancia de EC2 para ello. obtener la lista completa de configuración de AWS y luego buscar 'snap' me ayudó a encontrarlo.
Peter Smith
206

Si. Use el editor de etiquetas . Puede hacer clic para administrar recursos individuales.

https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html

schmmd
fuente
42
Para enumerar todos los recursos con el Editor de etiquetas, seleccione manualmente todas las regiones enumeradas (15 regiones en total a la fecha de hoy), seleccione "Todos los tipos de recursos" y no especifique una etiqueta. Luego haga clic en "Buscar recursos" y esto mostrará todos los recursos que se crearon en su cuenta.
Garrison Becker
3
tenga en cuenta que esto solo consultará los tipos de recursos admitidos docs.aws.amazon.com/ARG/latest/userguide/…
ekcrisp
18
Esta es una idea genial, pero desafortunadamente muchos tipos de recursos importantes aún no son compatibles a partir de hoy septiembre de 2018. No encontré mis tablas DynamoDB, API Gateway, Lambda, roles de IAM, etc ...
Bing Ren
3
Desafortunadamente, el enlace "Editor de etiquetas" ahora es 404.
wool.in.silver
1
El antiguo editor de etiquetas y los enlaces anteriores se han ido. Puede usar el nuevo editor de etiquetas, pero no veo una manera de guardar los resultados de varias regiones. Consulte console.aws.amazon.com/resource-groups y el documento en docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html
AstroTom
44

Puedes usar el Tag Editor.

  1. Ir a la consola de AWS
  2. En el Panel de navegación SUPERIOR, haga clic en Resource GroupsMenú desplegable
  3. Hacer clic Tag Editor AWS enumera todos los recursos en todas las regiones

Aquí podemos seleccionar una región en particular en la que queremos buscar o seleccionar todas las regiones del menú desplegable. Luego podemos seleccionar los recursos reales que queremos buscar o también podemos hacer clic en recursos individuales.

ingrese la descripción de la imagen aquí

Raman Sahasi
fuente
2
Esta es la respuesta correcta. Me funcionó muy bien, gracias!
Edward Corrigall
Estoy de acuerdo en que esta es la respuesta correcta, funciona y es muy fácil de seguir
Ben Gosub
8

Iría con el "editor de etiquetas" en "grupos de recursos" para esto, como lo sugirió Ashwini.

Puede enumerar fácilmente todos los recursos en todas las regiones sin ninguna configuración, etc.
Y aunque esto incluye todos los VPC predeterminados + grupos de seguridad, etc. (por lo que obtendrá ~ 140 elementos incluso si su cuenta está vacía), aún puede filtrar con bastante facilidad esto, ya sea dentro del editor de etiquetas, o exportar a csv y filtrar en Excel, por ejemplo.

Dylan
fuente
7

Use PacBot (Política como Code Bot) : un proyecto de código abierto que es una plataforma para el monitoreo continuo del cumplimiento, informes de cumplimiento y automatización de seguridad para la nube. PacBot descubre todos los recursos en todas las cuentas y todas las regiones, y se evalúan en relación con estas políticas para evaluar su conformidad. Las funciones de Omni Search también están disponibles, lo que permite buscar todos los recursos descubiertos. Incluso puede terminar / eliminar detalles de recursos a través de PacBot.

Omni Search

Omni Search

Página de resultados de búsqueda con filtrado de resultados

Página de resultados de búsqueda con filtrado de resultados

Asset 360 / Página de detalles de activos

Asset 360 / Página de detalles de activos

Las siguientes son las capacidades clave de PacBot

  • Evaluación de cumplimiento continuo.
  • Informes detallados de cumplimiento.
  • Reparación automática para infracciones de políticas.
  • Omni Search: capacidad de buscar todos los recursos descubiertos.
  • Seguimiento simplificado de infracciones de políticas.
  • Portal de autoservicio.
  • Políticas personalizadas y acciones de reparación automática personalizadas.
  • Agrupación dinámica de activos para ver el cumplimiento.
  • Capacidad para crear múltiples dominios de cumplimiento.
  • Gestión de excepciones.
  • Resúmenes de correo electrónico.
  • Admite múltiples cuentas de AWS.
  • Instalador completamente automatizado.
  • Tableros personalizables.
  • Soporte OAuth2.
  • Integración de Azure AD para iniciar sesión.
  • Control de acceso basado en roles.
  • Activo 360 grados.
Nidhish Krishnan
fuente
1
@SyCode Sí, puedes alojarlo en Prem
Nidhish Krishnan
¿Puede señalar cómo, no veo mención de esto en la documentación, parece que tengo que usar todos los servicios de AWS necesarios? Por ejemplo, me gustaría reemplazar RedShift con MySQL.
SyCode
2
La configuración de las instalaciones completas de @SyCode se proporciona en este enlace
Nidhish Krishnan el
5

Las herramientas proporcionadas por AWS no son útiles porque no son completas.

En mi propia búsqueda para mitigar este problema y obtener una lista de todos mis recursos de AWS, encontré esto: https://github.com/JohannesEbke/aws_list_all

Todavía no lo he probado, pero parece legítimo.

Luke Chavers
fuente
3

Sé que es una pregunta antigua, pero también me gustaría ayudar.

En realidad, tenemos AWS Config , que nos ayuda a buscar todos los recursos en nuestra nube. También puede realizar consultas SQL.

Realmente los animo a todos a conocer este increíble servicio.

Brenno Leal
fuente
2

Si.

Tuve el mismo problema, tratando de averiguar qué está pasando exactamente en mi cuenta de AWS.

Finalmente, terminé escribiendo AWSRetriver , una herramienta de escritorio para enumerar los recursos de AWS en todas las regiones.

Es una herramienta simple y directa que enumera todo ... (con suerte) Recursos de AWS

Danny Tylman
fuente
1

Es muy tarde, pero deberías mirar esto. No sé la CLI, pero aún así vale la pena eliminar un pequeño script de shell para hacer lo que necesita:

https://pypi.org/project/aws-list-all/

Es una biblioteca de Python que en sus propias palabras:

"Descripción del proyecto Enumere todos los recursos en una cuenta de AWS, todas las regiones, todos los servicios (*). Escribe archivos JSON para su posterior procesamiento.

(*) No hay garantías de integridad. Use alertas de facturación si le preocupan los costos ".

Surj
fuente
0

También estoy buscando una función similar "enumerar todos los recursos" en AWS pero no pude encontrar nada lo suficientemente bueno.

"Grupos de recursos" no ayuda porque solo enumera los recursos que han sido etiquetados y el usuario tiene que especificar la etiqueta. Si omite etiquetar un recurso, eso no aparecerá en "Grupos de recursos" .

IU de "Crear un grupo de recursos"

Una característica más adecuada es "Grupos de recursos" -> "Editor de etiquetas" como ya se mencionó en la publicación anterior. Seleccione las regiones y los tipos de recursos para ver la lista de recursos en el editor de etiquetas. Esto sirve para el propósito pero no es muy fácil de usar porque tengo que ingresar la región y el tipo de recurso cada vez que quiero usarlo. Todavía estoy buscando una interfaz de usuario fácil de usar.

IU de "Buscar recurso" en "Editor de etiquetas"

Dipak Kumar Singh
fuente
En realidad, ¡fue un verdadero salvavidas para mí! Simplemente abra el Editor de etiquetas, seleccione todas las regiones una por una (no hay tantas) y "Todos los tipos de recursos" y presione "Buscar recursos". Luego puede descargar la lista completa como CSV.
Tero Tilus
0

Prueba esto

Por solo ec2:

from skew import scan

    arn = scan('arn:aws:ec2:us-west-2:123456789012:instance/i-12345678')
    for resource in arn:
        print(resource.data)

Para todos los recursos:

arn = scan('arn:aws:*:*:<<youraccountId>>:instance*')
for resource in arn:
    print(resource.data)

Referencia: https://github.com/scopely-devops/skew

STang
fuente
0

EDITAR: Esta respuesta está en desuso. Verifica las otras respuestas.

No,
no hay forma de obtener todos los recursos dentro de su cuenta de una sola vez. Cada región es independiente y para algunos servicios como IAM, el concepto de región no existe en absoluto. Aunque hay llamadas API disponibles para enumerar los recursos y servicios.
Por ejemplo:

  • Para obtener una lista de todas las regiones disponibles para su cuenta:

    output, err := client.DescribeRegions(&ec2.DescribeRegionsInput{})
    

  • Para obtener una lista de usuarios, roles o grupos de IAM, puede usar:

    client.GetAccountAuthorizationDetails(&iam.GetAccountAuthorizationDetailsInput{})

    Puede encontrar más detalles sobre las llamadas API y su uso en: https://docs.aws.amazon.com/sdk-for-go/api/service/iam/

    El enlace anterior es solo para IAM. Del mismo modo, puede encontrar API para todos los demás recursos y servicios.

  • Abhishek Soni
    fuente
    Esta respuesta no está actualizada
    Carles Alcolea
    -1

    Otra opción es utilizar este script que ejecuta "aws configservice list-discover-resources --resource-type" para cada recurso

    for i in  AWS::EC2::CustomerGateway AWS::EC2::EIP AWS::EC2::Host AWS::EC2::Instance AWS::EC2::InternetGateway AWS::EC2::NetworkAcl AWS::EC2::NetworkInterface AWS::EC2::RouteTable AWS::EC2::SecurityGroup AWS::EC2::Subnet AWS::CloudTrail::Trail AWS::EC2::Volume AWS::EC2::VPC AWS::EC2::VPNConnection AWS::EC2::VPNGateway AWS::IAM::Group AWS::IAM::Policy AWS::IAM::Role AWS::IAM::User AWS::ACM::Certificate AWS::RDS::DBInstance AWS::RDS::DBSubnetGroup AWS::RDS::DBSecurityGroup AWS::RDS::DBSnapshot AWS::RDS::EventSubscription AWS::ElasticLoadBalancingV2::LoadBalancer AWS::S3::Bucket AWS::SSM::ManagedInstanceInventory AWS::Redshift::Cluster AWS::Redshift::ClusterSnapshot AWS::Redshift::ClusterParameterGroup AWS::Redshift::ClusterSecurityGroup  AWS::Redshift::ClusterSubnetGroup AWS::Redshift::EventSubscription AWS::CloudWatch::Alarm AWS::CloudFormation::Stack AWS::DynamoDB::Table AWS::AutoScaling::AutoScalingGroup AWS::AutoScaling::LaunchConfiguration AWS::AutoScaling::ScalingPolicy AWS::AutoScaling::ScheduledAction AWS::CodeBuild::Project AWS::WAF::RateBasedRule AWS::WAF::Rule AWS::WAF::WebACL AWS::WAFRegional::RateBasedRule AWS::WAFRegional::Rule AWS::WAFRegional::WebACL AWS::CloudFront::Distribution  AWS::CloudFront::StreamingDistribution AWS::WAF::RuleGroup AWS::WAFRegional::RuleGroup AWS::Lambda::Function AWS::ElasticBeanstalk::Application AWS::ElasticBeanstalk::ApplicationVersion AWS::ElasticBeanstalk::Environment AWS::ElasticLoadBalancing::LoadBalancer AWS::XRay::EncryptionConfig AWS::SSM::AssociationCompliance AWS::SSM::PatchCompliance AWS::Shield::Protection AWS::ShieldRegional::Protection AWS::Config::ResourceCompliance AWS::CodePipeline::Pipeline; do aws configservice list-discovered-resources --resource-type $i; done
    
    Luis
    fuente