Π ΡƒΠ±Ρ€ΠΈΠΊΠΈ
Uncategorized

AWS CLI Chechsheet

πŸ”§ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π’Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ AWS https://aws.amazon.com/cli/ JQ https://stedolan.github.io/jq/ … ΠŸΠΎΠΌΠ΅Ρ‡Π΅Π½ΠΎ с AWS, JQ, DEVOPS.

πŸ”§ ВрСбуСтся инструмСнты

⚠️ ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ отвСтствСнности: всС рСсурсы, ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ записи, ARN, HostName etc сгСнСрированы с использованиСм Faker ΠžΡ‚ΠΊΠ°Π· Они Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

πŸ“’ ОглавлСниС

  • EC2.
    • Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ экзСмпляра списка, Ρ‚ΠΈΠΏ ΠΈ имя
    • Бписок экзСмпляров с ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ IP-адрСсом ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ
    • Бписок VPCS ΠΈ IP-Π±Π»ΠΎΠΊΠ° CIDR
    • Бписок подсСти для VPC
    • Бписок Π³Ρ€ΡƒΠΏΠΏ бСзопасности
    • ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ бСзопасности для экзСмпляра
    • Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ бСзопасности экзСмпляра
    • ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ бСзопасности Print ΠΊΠ°ΠΊ fromaddress ΠΈ toport
    • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ бСзопасности
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΡ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ бСзопасности
    • Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° бСзопасности Π³Ρ€ΡƒΠΏΠΏΡ‹
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ бСзопасности
  • S3
    • Бписок Π²Π΅Π΄Π΅Ρ€
    • Бписок Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π²Π΅Π΄Ρ€Π΅
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Π΄Ρ€ΠΎ
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Π΄Ρ€ΠΎ
    • Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ S3 Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ
    • Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° S3
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ S3
    • Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π²Π΅Π΄Ρ€ΠΎ Π² мСстноС
    • Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² Π²Π΅Π΄Ρ€ΠΎ
    • ΠžΠ±ΡŠΠ΅ΠΊΡ‚ S3 S3 Π±Π΅Π· ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ доступа
  • API Gateway
    • Бписок ID ΠΈ ΠΈΠΌΠ΅Π½Π° шлюза API
    • Бписок ΠΊΠ»ΡŽΡ‡ΠΈ шлюза API
    • Бписок Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ΠΈ Gateway API
    • Бписок рСсурсов для Gateway API
    • Найти лямбда для Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² API
  • Elb.
    • Бписок elb хостов
    • Бписок alb arns
    • Бписок Elb Target Group ARNS
    • Найти экзСмпляры для Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹
  • ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ
    • Бписок кластСров Π‘Π”
    • Бписок экзСмпляров Π‘Π”
    • ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ снимок экзСмпляра DB
    • ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°ΠΉΡ‚Π΅ снимка кластСра DB
  • Эластикалина
    • Бписок эластичный Ρ‚ΠΈΠΏ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈ имя
    • Бписок Π³Ρ€ΡƒΠΏΠΏ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ упругости
    • Бписок ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ снимки упругости
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ снимок уластСй
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ снимок упругости
    • ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π²Π΅Ρ€Ρ…/Π²Π½ΠΈΠ· Π Π΅ΠΏΠ»ΠΈΠΊΠ° Elasticache
  • Лямбда
    • Бписок лямбда Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, врСмя выполнСния ΠΈ памяти
    • Бписок lambda слоСв
    • Бписок исходноС событиС для лямбда
    • Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ лямбда ΠΊΠΎΠ΄
  • Cloudwatch.
    • Бписок ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… сигналов Ρ‚Ρ€Π΅Π²ΠΎΠ³ΠΈ ΠΈ статуса
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊ для EC2 Высокая cpuutilization
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊ для EC2 High StatusCheckFailed_Instance
  • Market53.
    • Бписок Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²
    • Бписок записСй для Π΄ΠΎΠΌΠ΅Π½Π° (Π·ΠΎΠ½Π°)
  • SNS.
    • Бписок sns timics
    • Бписок SNS-Ρ‚Π΅ΠΌΠ° ΠΈ связанныС с этим подписки
    • ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π½Π° SNS-Ρ‚Π΅ΠΌΡƒ
  • Π”ΠΈΠ½Π°ΠΌΠΎΠ΄Π±
    • Бписок Ρ‚Π°Π±Π»ΠΈΡ† dynamodb
    • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
    • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ счСт элСмСнта ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
    • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π°
    • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ поля ΠΈΠ· элСмСнта
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π°
  • SQS.
    • ΠžΡ‡Π΅Π±Ρ‹ списка
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ
    • ΠŸΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ сообщСния Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ
    • ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС
    • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сообщСниС
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ сообщСниС
    • ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ
  • Cloudfront.
    • Бписок дистрибутивы CloudFront ΠΈ Origins
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ кэш
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ статус аннулирования кэша
  • Π£ΡΠΈΠ»ΠΈΠ²Π°Ρ‚ΡŒ
    • Бписок ΡƒΡΠΈΠ»ΠΈΡ‚Π΅Π»ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ источника
  • ΠšΠΎΠ³Π½ΠΈΡ‚ΠΎ
    • Бписок ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΈΠΌΠ΅Π½ ΠΏΡƒΠ»Π°
    • Бписок Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈ элСктронная ΠΏΠΎΡ‡Ρ‚Π° всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
  • IAM ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ
    • Бписок userid ΠΈ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ
    • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    • Бписок ΠΊΠ»ΡŽΡ‡Π΅ΠΉ доступа для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ доступа для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    • ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ/Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ доступа для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ доступа для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • IAM GROUP
    • Бписок Π³Ρ€ΡƒΠΏΠΏ
    • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ/Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹
    • Бписок ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ ΠΈ Π°Ρ€Π½ΠΎΠ²
    • Бписок ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ/Π³Ρ€ΡƒΠΏΠΏΠ°/Ρ€ΠΎΠ»ΠΈ для ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ
    • Бписок ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ для Π³Ρ€ΡƒΠΏΠΏΡ‹
    • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ
    • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ
    • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹
    • Бписок ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅
    • Бписок Π³Ρ€ΡƒΠΏΠΏ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    • ΠŸΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ/ΠΎΡ‚ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅

ℹ️ Pro Tip!

πŸ‘‰ Если Ρƒ вас Π΅ΡΡ‚ΡŒ нСсколько ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй AWS, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ псСвдоним Bash, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ - ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΊ AWS ΠΎΡ€ΡƒΠ΄ΠΈΠ΅ Ρ‚Ρ€ΡƒΠ΄Π°.

alias aws-prod="aws --profile work-prod"
alias aws-dev="aws --profile work-dev"
alias aws-self="aws --profile personal"
alias aws="aws --profile work-dev"

πŸ‘‰ Для форматирования AWS Π’Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° столбСц --Ρ‚ ΠžΡ‚ΠΊΠ°Π·

# aws ec2 describe-instances | jq ...
i-0f112d652ecf13dac c3.x2large fisher.com
i-0b3b5128445a332db t2.nano robinson.com

# aws ec2 describe-instances | jq ... | column -t
i-0f112d652ecf13dac  c3.x2large  fisher.com
i-0b3b5128445a332db  t2.nano     robinson.com

EC2.

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ экзСмпляра списка, Ρ‚ΠΈΠΏ ΠΈ имя

aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|.InstanceId+" "+.InstanceType+" "+(.Tags[] | select(.Key == "Name").Value)'
i-0f112d652ecf13dac  c3.xlarge  fisher.com
i-0b3b5128445a332db  t2.nano    robinson.com
i-0d1c1cf4e980ac593  t2.micro   nolan.com
i-004ee6b792c3b6914  t2.nano    grimes-green.net
i-00f11e8e33c971058  t2.nano    garrett.com

Бписок экзСмпляров с ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ IP-адрСсом ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ

πŸ‘‰ Π‘ΠΎΠ²Π΅Ρ‚: Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ это Π½Π° ваш /etc/hosts

aws ec2 describe-instances --query 'Reservations[*].Instances[?not_null(PublicIpAddress)]' | jq -r '.[][]|.PublicIpAddress+" "+(.Tags[]|select(.Key=="Name").Value)'
223.64.72.64    fisher.com
198.82.207.161  robinson.com
182.139.20.233  nolan.com
153.134.83.44   grimes-green.net
202.32.63.121   garrett.com

Бписок VPCS и IP-блока CIDR

aws ec2 describe-vpcs | jq -r '.Vpcs[]|.VpcId+" "+(.Tags[]|select(.Key=="Name").Value)+" "+.CidrBlock'
vpc-0d1c1cf4e980ac593  frontend-vpc  10.0.0.0/16
vpc-00f11e8e33c971058  backend-vpc   172.31.0.0/16

Бписок подсСти для VPC

aws ec2 describe-subnets --filter Name=vpc-id,Values=vpc-0d1c1cf4e980ac593 | jq -r '.Subnets[]|.SubnetId+" "+.CidrBlock+" "+(.Tags[]|select(.Key=="Name").Value)'
subnet-0dae5d4daa47fe4a2  10.0.128.0/20  Public Subnet 1
subnet-0641a25faccb01f0f  10.0.32.0/19   Private Subnet 2
subnet-09fb8038641f1f36f  10.0.0.0/19    Private Subnet 1
subnet-02a63c67684d8deed  10.0.144.0/20  Public Subnet 2

Бписок Π³Ρ€ΡƒΠΏΠΏ бСзопасности

aws ec2 describe-security-groups | jq -r '.SecurityGroups[]|.GroupId+" "+.GroupName'
sg-02a63c67684d8deed  backend-db
sg-0dae5d4daa47fe4a2  backend-redis
sg-0a56bff7b12264282  frontend-lb
sg-0641a25faccb01f0f  frontend-https
sg-09fb8038641f1f36f  internal-ssh

ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ бСзопасности для экзСмпляра

aws ec2 describe-instances --instance-ids i-0dae5d4daa47fe4a2 | jq -r '.Reservations[].Instances[].SecurityGroups[]|.GroupId+" "+.GroupName'
sg-02a63c67684d8deed  backend-db
sg-0dae5d4daa47fe4a2  backend-redis

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ бСзопасности экзСмпляра

πŸ‘‰ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π³Ρ€ΡƒΠΏΠΏΡ‹ бСзопасности, Π° Ρ‚Π°ΠΊΠΆΠ΅

aws ec2 modify-instance-attribute --instance-id i-0dae5d4daa47fe4a2 --groups sg-02a63c67684d8deed sg-0dae5d4daa47fe4a2

ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ бСзопасности Print ΠΊΠ°ΠΊ fromaddress ΠΈ toport

aws ec2 describe-security-groups --group-ids sg-02a63c67684d8deed | jq -r '.SecurityGroups[].IpPermissions[]|. as $parent|(.IpRanges[].CidrIp+" "+($parent.ToPort|tostring))'
223.64.72.64/32    3306
198.82.207.161/32  3306
168.244.58.160/32  3306
202.0.149.202/32   3306
212.143.80.102/32  3306

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ бСзопасности

aws ec2 authorize-security-group-ingress --group-id sg-02a63c67684d8deed --protocol tcp --port 443 --cidr 35.0.0.1

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΡ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ бСзопасности

aws ec2 revoke-security-group-ingress --group-id sg-02a63c67684d8deed --protocol tcp --port 443 --cidr 35.0.0.1

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° бСзопасности Π³Ρ€ΡƒΠΏΠΏΡ‹

πŸ‘‰ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всС IP-Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹

aws ec2 update-security-group-rule-descriptions-ingress --group-id sg-02a63c67684d8deed --ip-permissions 'ToPort=443,IpProtocol=tcp,IpRanges=[{CidrIp=202.171.186.133/32,Description=Home}]'

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ бСзопасности

aws ec2 delete-security-group --group-id sg-02a63c67684d8deed

S3

Бписок Π²Π΅Π΄Π΅Ρ€

aws s3 ls
2020-01-28 18:49:50 customer-data-primary
2020-01-28 18:50:22 customer-data-backup
2020-01-28 18:50:54 wordpress-cdn
2020-01-28 18:52:25 backend-artifacts-20200220-deployment

Бписок Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π²Π΅Π΄Ρ€Π΅

aws s3 ls wordpress-cdn/wp-content/uploads/2019/10/04/
2019-10-04 15:02:02     133557 amazing-content.jpg
2019-10-04 15:02:02       2986 amazing-content-103x50.jpg
2019-10-04 15:02:02       5640 amazing-content-120x120.jpg
2019-10-04 15:02:02       7924 amazing-content-150x150.jpg

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Π΄Ρ€ΠΎ

aws s3 mb s3://my-awesome-new-bucket
make_bucket: my-awesome-new-bucket

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π²Π΅Π΄Ρ€ΠΎ

aws s3 rb s3://my-awesome-new-bucket --force

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ S3 Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ

aws s3 cp s3://my-awesome-new-bucket .
download: ./backup.tar from s3://my-awesome-new-bucket/backup.tar

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° S3

aws s3 cp backup.tar s3://my-awesome-new-bucket
upload: ./backup.tar to s3://my-awesome-new-bucket/backup.tar

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ S3

aws s3 rm s3://my-awesome-new-bucket/secret-file.gz .
delete: s3://my-awesome-new-bucket/secret-file.gz

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π²Π΅Π΄Ρ€ΠΎ Π² мСстноС

aws s3 sync s3://my-awesome-new-bucket/ /media/Passport-Ultra/Backup

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² Π²Π΅Π΄Ρ€ΠΎ

aws s3 sync /home/minhaz/Downloads s3://my-awesome-new-bucket/

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ S3 S3 Π±Π΅Π· ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ доступа

aws s3 presign s3://my-awesome-new-bucket/business-reports.pdf --expires-in 3600
https://my-awesome-new-bucket.s3.amazonaws.com/business-reports.pdf?AWSAccessKeyId=AKISUENSAKSIEUAA&Expires=1582876994&Signature=kizOEA93kaIHw7uv25wSFIKLmAx

API Gateway

Бписок ID и имСна шлюза API

aws apigateway get-rest-apis | jq -r '.items[] | .id+" "+.name'
5e3221cf8  backend-api
69ef7d4c8  frontend-api
bb1e3c281  partner-api
f99796943  internal-crm-api
ee86b4cde  import-data-api

Бписок ΠΊΠ»ΡŽΡ‡ΠΈ шлюза API

aws apigateway get-api-keys | jq -r '.items[] | .id+" "+.name'
ee86b4cde   backend-api-key
69ef7d4c8   partner-api-key

Бписок Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ΠΈ Gateway API

aws apigateway get-domain-names | jq -r '.items[] | .domainName+" "+.regionalDomainName'
backend-api.mdminhazulhaque.io   d-ee86b4cde.execute-api.ap-southeast-1.amazonaws.com
frontend-api.mdminhazulhaque.io  d-bb1e3c281.execute-api.ap-southeast-1.amazonaws.com

Бписок рСсурсов для Gateway API

aws apigateway get-resources --rest-api-id ee86b4cde  | jq -r '.items[] | .id+" "+.path'
ee86b4cde  /{proxy+}
69ef7d4c8  /

Найти лямбда для Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² API

aws apigateway get-integration --rest-api-id ee86b4cde --resource-id 69ef7d4c8 --http-method GET | jq -r '.uri'
arn:aws:lambda:ap-southeast-1:987654321:function:backend-api-function-5d4daa47fe4a2:live/invocations

Elb.

Бписок elb хостов

aws elbv2 describe-load-balancers --query 'LoadBalancers[*].DNSName'  | jq -r 'to_entries[] | .value'
frontend-lb-1220186848339.ap-southeast-1.elb.amazonaws.com
backend-lb-6208709163457.ap-southeast-1.elb.amazonaws.com

Бписок alb arns

aws elbv2 describe-load-balancers | jq -r '.LoadBalancers[] | .LoadBalancerArn'
arn:aws:elasticloadbalancing:ap-southeast-1:987654321:loadbalancer/app/frontend-lb/1220186848339
arn:aws:elasticloadbalancing:ap-southeast-1:987654321:loadbalancer/app/backend-lb/6208709163457

Бписок Elb Target Group ARNS

aws elbv2 describe-target-groups | jq -r '.TargetGroups[] | .TargetGroupArn'
arn:aws:elasticloadbalancing:ap-southeast-1:987654321:targetgroup/frontend/b6da07d35
arn:aws:elasticloadbalancing:ap-southeast-1:987654321:targetgroup/backend/97ad3b13c

Найти экзСмпляры для Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹

aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:ap-southeast-1:987654321:targetgroup/wordpress-ph/88f517d6b5326a26 | jq -r '.TargetHealthDescriptions[] | .Target.Id'
i-0b3b5128445a332db
i-0d1c1cf4e980ac593
i-00f11e8e33c971058

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ

Бписок кластСров Π‘Π”

aws rds describe-db-clusters | jq -r '.DBClusters[] | .DBClusterIdentifier+" "+.Endpoint'
backend-prod   backend-prod.cluster-b6da07d35.ap-southeast-1.rds.amazonaws.com
internal-prod  internal-dev.cluster-b6da07d35.ap-southeast-1.rds.amazonaws.com

Бписок экзСмпляров Π‘Π”

aws rds describe-db-instances | jq -r '.DBInstances[] | .DBInstanceIdentifier+" "+.DBInstanceClass+" "+.Endpoint.Address'
backend-dev   db.t3.medium  backend-prod.b6da07d35.ap-southeast-1.rds.amazonaws.com
internal-dev  db.t2.micro   internal-dev.b6da07d35.ap-southeast-1.rds.amazonaws.com

ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ снимок экзСмпляра DB

aws rds create-db-snapshot --db-snapshot-identifier backend-dev-snapshot-0001 --db-instance-identifier backend-dev
aws rds describe-db-snapshots --db-snapshot-identifier backend-dev-snapshot-0001 --db-instance-identifier general

ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°ΠΉΡ‚Π΅ снимка кластСра DB

aws rds create-db-cluster-snapshot --db-cluster-snapshot-identifier backend-prod-snapshot-0002 --db-cluster-identifier backend-prod
aws rds describe-db-cluster-snapshots --db-cluster-snapshot-identifier backend-prod-snapshot-0002 --db-cluster-identifier backend-prod

Эластикалина

Бписок эластичный Ρ‚ΠΈΠΏ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈ имя

aws elasticache describe-cache-clusters | jq -r '.CacheClusters[] | .CacheNodeType+" "+.CacheClusterId'
cache.t2.micro  backend-login-hk
cache.t2.micro  backend-login-vn
cache.t2.micro  backend-login-sg

Бписок Π³Ρ€ΡƒΠΏΠΏ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ упругости

aws elasticache describe-replication-groups | jq -r '.ReplicationGroups[] | .ReplicationGroupId+" "+.NodeGroups[].PrimaryEndpoint.Address'
backend-login-hk backend-login-hk.6da35.ng.0001.apse1.cache.amazonaws.com
backend-login-vn backend-login-vn.6da35.ng.0001.apse1.cache.amazonaws.com
backend-login-sg backend-login-sg.6da35.ng.0001.apse1.cache.amazonaws.com

Бписок ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ снимки упругости

aws elasticache describe-snapshots | jq -r '.Snapshots[] | .SnapshotName'
automatic.backend-login-hk-2020-02-27-00-27
automatic.backend-login-vn-2020-02-27-00-27
automatic.backend-login-sg-2020-02-27-00-27

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ снимок уластСй

aws elasticache create-snapshot --snapshot-name backend-login-hk-snap-0001 --replication-group-id backend-login-hk --cache-cluster-id backend-login-hk

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ снимок упругости

aws elasticache delete-snapshot --snapshot-name backend-login-hk-snap-0001

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π²Π΅Ρ€Ρ…/Π²Π½ΠΈΠ· Π Π΅ΠΏΠ»ΠΈΠΊΠ° Elasticache

aws elasticache increase-replica-count --replication-group-id backend-login-hk --apply-immediately
aws elasticache decrease-replica-count --replication-group-id backend-login-hk --apply-immediately

Лямбда

Бписок лямбда Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, врСмя выполнСния ΠΈ памяти

aws lambda list-functions | jq -r '.Functions[] | .FunctionName+" "+.Runtime+" "+(.MemorySize|tostring)'
backend-api-function           nodejs8.10  512
backend-signup-email-function  nodejs10.x  128
partner-api-8XJAP1VVLYA7       python3.7   128
marketing-promo-sqs-function   nodejs10.x  128

Бписок lambda слоСв

aws lambda list-layers | jq -r '.Layers[] | .LayerName'
imagemagik-layer
django-layer
nodejs-extra-layer

Бписок исходноС событиС для лямбда

aws lambda list-event-source-mappings | jq -r '.EventSourceMappings[] | .FunctionArn+" "+.EventSourceArn'
arn:aws:lambda:function:backend-api-function           arn:aws:dynamodb:table/prod-user-list/stream
arn:aws:lambda:function:backend-signup-email-function  arn:aws:dynamodb:table/prod-user-email/stream
arn:aws:lambda:function:partner-api-8XJAP1VVLYA7       arn:aws:sqs:partner-input-msg-queue
arn:aws:lambda:function:marketing-promo-sqs-function   arn:aws:sqs:promo-input-msg-queue

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ лямбда ΠΊΠΎΠ΄

aws lambda get-function --function-name DynamoToSQS | jq -r .Code.Location
https://awslambda-ap-se-1-tasks.s3.ap-southeast-1.amazonaws.com/snapshots/987654321/backend-api-function-1fda0de7-a751-4586-bf64-5601a410c170

Cloudwatch.

Бписок ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… сигналов Ρ‚Ρ€Π΅Π²ΠΎΠ³ΠΈ ΠΈ статуса

aws cloudwatch describe-alarms | jq -r '.MetricAlarms[] | .AlarmName+" "+.Namespace+" "+.StateValue'
backend-autoscale  AWS/EC2             OK
backend-lb         AWS/ApplicationELB  OK
partner-hk         AWS/ECS             ALARM
partner-vn         AWS/ECS             ALARM
partner-sg         AWS/ECS             ALARM
userdata-read      AWS/DynamoDB        OK
userdata-write     AWS/DynamoDB        OK

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊ для EC2 Высокая cpuutilization

aws cloudwatch put-metric-alarm --alarm-name high-cpu-usage --alarm-description "Alarm when CPU exceeds 70 percent" --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 70 --comparison-operator GreaterThanThreshold  --dimensions "Name=InstanceId,Value=i-123456789" --evaluation-periods 2 --alarm-actions arn:aws:sns:ap-southeast-1:987654321:System-Alerts --unit Percent

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±ΡƒΠ΄ΠΈΠ»ΡŒΠ½ΠΈΠΊ для EC2 High StatusCheckFailed_Instance

aws cloudwatch put-metric-alarm --alarm-name EC2-StatusCheckFailed-AppServer --alarm-description "EC2 StatusCheckFailed for AppServer" --metric-name StatusCheckFailed_Instance --namespace AWS/EC2 --statistic Average --period 60 --threshold 0 --comparison-operator GreaterThanThreshold  --dimensions "Name=InstanceId,Value=i-123456789" --evaluation-periods 3 --alarm-actions arn:aws:sns:ap-southeast-1:987654321:System-Alerts --unit Count

Market53.

Бписок домСнов

aws route53 list-hosted-zones | jq -r '.HostedZones[]|.Id+" "+.Name'
/hostedzone/ZEB1PAH4U mysite.com.
/hostedzone/ZQUOHGH3G yoursite.com.
/hostedzone/ZEADEA0CO staywith.us.

Бписок записСй для домСна (зона)

aws route53 list-resource-record-sets --hosted-zone-id /hostedzone/ZEB1PAH4U | jq -r '.ResourceRecordSets[]| if (.AliasTarget!=null) then .Type+" "+.Name+" "+.AliasTarget.DNSName else .Type+" "+.Name+" "+.ResourceRecords[].Value end'
A      mysite.com.              dualstack.mysite-lb-967522168.ap-southeast-1.elb.amazonaws.com.
A      mysite.com.              11.22.33.44
TXT    _amazonses.mysite.com.   6c6d761371f0480bbe60de0df275b550
A      test.mysite.com.         55.66.77.88
CNAME  www.mysite.com.          mysite.com

SNS.

Бписок sns timics

aws sns list-topics | jq -r '.Topics[] | .TopicArn'
arn:aws:sns:ap-southeast-1:987654321:backend-api-monitoring
arn:aws:sns:ap-southeast-1:987654321:dynamodb-count-check
arn:aws:sns:ap-southeast-1:987654321:partner-integration-check
arn:aws:sns:ap-southeast-1:987654321:autoscale-notifications

Бписок SNS-Ρ‚Π΅ΠΌΠ° ΠΈ связанныС с этим подписки

aws sns list-subscriptions | jq -r '.Subscriptions[] | .TopicArn+" "+.Protocol+" "+.Endpoint'
arn:aws:sns:ap-southeast-1:autoscale-notifications    lambda  arn:aws:lambda:function:autoscale-function
arn:aws:sns:ap-southeast-1:backend-api-monitoring     email   alert@mdminhazulhaque.io
arn:aws:sns:ap-southeast-1:dynamodb-count-check       email   alert@mdminhazulhaque.io
arn:aws:sns:ap-southeast-1:partner-integration-check  lambda  arn:aws:lambda:function:partner-function
arn:aws:sns:ap-southeast-1:autoscale-notifications    lambda  arn:aws:lambda:function:autoscale-function

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π½Π° SNS-Ρ‚Π΅ΠΌΡƒ

aws sns publish --topic-arn arn:aws:sns:ap-southeast-1:987654321:backend-api-monitoring \
    --message "Panic!!!" \
    --subject "The API is down!!!"

Π”ΠΈΠ½Π°ΠΌΠΎΠ΄Π±

Бписок Ρ‚Π°Π±Π»ΠΈΡ† dynamodb

aws dynamodb list-tables | jq -r .TableNames[]
userdata_hk
userdata_vn
userdata_sg
providers
events

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

❗ Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС элСмСнты Π΄ΠΎ Sigint ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ

aws dynamodb scan --table-name events 

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ счСт элСмСнта ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

aws dynamodb scan --table-name events --select COUNT | jq .ScannedCount
726119

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π°

aws dynamodb get-item --table-name events --key '{"email": {"S": "admin@mdminhazulhaque.io"}}'
{
    "Item": {
        "email": {
            "S": "admin@mdminhazulhaque.io"
        },
        "created_at": {
            "N": "1554780667296"
        },
        "event_type": {
            "S": "DISPATCHED"
        }
    }
}

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ поля ΠΈΠ· элСмСнта

aws dynamodb get-item --table-name events --key '{"email": {"S": "admin@mdminhazulhaque.io"}}' --attributes-to-get event_type
{
    "Item": {
        "event_type": {
            "S": "DISPATCHED"
        }
    }
}

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π°

aws dynamodb delete-item --table-name events --key '{"email": {"S": "admin@mdminhazulhaque.io"}}'

SQS.

ΠžΡ‡Π΅Π±Ρ‹ списка

aws sqs list-queues | jq -r '.QueueUrls[]'
https://ap-southeast-1.queue.amazonaws.com/987654321/public-events.fifo
https://ap-southeast-1.queue.amazonaws.com/987654321/user-signup

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ

aws sqs create-queue --queue-name public-events.fifo | jq -r .QueueUrl
https://ap-southeast-1.queue.amazonaws.com/987654321/public-events.fifo

ΠŸΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ сообщСния Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

aws sqs get-queue-attributes --queue-url https://ap-southeast-1.queue.amazonaws.com/987654321/public-events.fifo | jq -r '.Attributes | .QueueArn + " " + .ApproximateNumberOfMessages'
arn:aws:sqs:ap-southeast-1:987654321:events.fifo 42

ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС

aws sqs send-message --queue-url https://ap-southeast-1.queue.amazonaws.com/987654321/public-events.fifo --message-body Hello
{
    "MD5OfMessageBody": "37b51d194a7513e45b56f6524f2d51f2",
    "MessageId": "4226398e-bab0-4bee-bf5a-8e7ae18c855a"
}

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сообщСниС

aws sqs receive-message --queue-url https://ap-southeast-1.queue.amazonaws.com/987654321/public-events.fifo | jq -r '.Messages[] | .Body'
Hello

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ сообщСниС

aws sqs delete-message --queue-url https://ap-southeast-1.queue.amazonaws.com/987654321/public-events.fifo --receipt-handle "AQEBpqKLxNb8rIOn9ykSeCkKebNzn0BrEJ3Cg1RS6MwID2t1oYHCnMP06GnuVZGzt7kpWXZ5ieLQ=="

ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ

aws sqs purge-queue --queue-url https://ap-southeast-1.queue.amazonaws.com/987654321/public-events.fifo

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ

aws sqs delete-queue --queue-url https://ap-southeast-1.queue.amazonaws.com/987654321/public-events.fifo

Cloudfront.

Бписок дистрибутивы CloudFront ΠΈ Origins

aws cloudfront list-distributions | jq -r '.DistributionList.Items[] | .DomainName+" "+.Origins.Items[0].DomainName'
d9d5bb1e3c281f.cloudfront.net  frontend-prod-hk.s3.amazonaws.com
d12b09e8a0a996.cloudfront.net  frontend-prod-vn.s3.amazonaws.com
db64e7e9b3cc22.cloudfront.net  frontend-prod-sg.s3.amazonaws.com
d5e3221cf8b921.cloudfront.net  cdn.mdminhazulhaque.io

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ кэш

aws cloudfront create-invalidation --distribution-id D12B09E8A0A996  --path /blog/\* /blog/assets/\* | jq -r '.Invalidation.Id'
IALJ5AL93ZD79

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ статус аннулирования кэша

aws cloudfront get-invalidation --distribution-id D12B09E8A0A996 --id IALJ5AL93ZD79 | jq -r '.Invalidation.Status'
Completed

Π£ΡΠΈΠ»ΠΈΠ²Π°Ρ‚ΡŒ

Бписок ΡƒΡΠΈΠ»ΠΈΡ‚Π΅Π»ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ источника

aws amplify list-apps | jq -r '.apps[] | .name+" "+.defaultDomain+" "+.repository'
fe-vn  d9d5bb1e3c281f.amplifyapp.com  https://bitbucket.org/aws/frontend-vn
fe-hk  db64e7e9b3cc22.amplifyapp.com  https://bitbucket.org/aws/frontend-hk
fe-sg  d5e3221cf8b921.amplifyapp.com  https://bitbucket.org/aws/frontend-sg

ΠšΠΎΠ³Π½ΠΈΡ‚ΠΎ

Бписок ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΈΠΌΠ΅Π½ ΠΏΡƒΠ»Π°

aws cognito-idp list-user-pools --max-results 60 | jq -r '.UserPools[] | .Id+" "+.Name'
ap-southeast-1_b6da07d35 prod-users
ap-southeast-1_b6da07d34 dev-users

Бписок Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈ элСктронная ΠΏΠΎΡ‡Ρ‚Π° всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

aws cognito-idp list-users --user-pool-id ap-southeast-1_b6da07d35 | jq -r '.Users[].Attributes | from_entries | .sub + " " + .phone_number + " " + .email'
585fb96e-525c-4f9b-9d41-865d2dffde9b +601122334455 admin@mdminhazulhaque.io
71f2778c-8e21-4775-94dc-e363c77d1ae1 +601122334455 foo@bar.com
8fc1882e-e661-49db-88e6-45d370bc352a +601122334455 cli@aws.com

IAM ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ

Бписок userid ΠΈ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

aws iam list-users | jq -r '.Users[]|.UserId+" "+.UserName'
AIDAZBWIOJIQFOLNBXXCVSUQ kaiser
AIDAZCTWYVXYOKSHVWXPYPLR thornton
AIDAZUYALCGFQJENBCZFJTVX maldonado
AIDAZKQAFIGQJWOKKSKRBLGE key
AIDAZXUDGQVQCEWBFGIJOWWY nelson

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ

aws iam get-user --user-name kaiser

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

aws iam create-user --user-name audit-temp

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

aws iam delete-user --user-name audit-temp

Бписок ΠΊΠ»ΡŽΡ‡Π΅ΠΉ доступа для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

aws iam list-access-keys --user-name audit-temp | jq -r .AccessKeyMetadata[].AccessKeyId
AKIABWIOJIQFOLNBXXCVSUQ
AKIACTWYVXYOKSHVWXPYPLR
AKIAUYALCGFQJENBCZFJTVX

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ доступа для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

aws iam delete-access-key --user-name audit-temp --access-key-id AKIABWIOJIQFOLNBXXCVSUQ

ΠΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ/Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ доступа для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

aws iam update-access-key --status Inactive --user-name audit-temp --access-key-id AKIABWIOJIQFOLNBXXCVSUQ
aws iam update-access-key --status Active   --user-name audit-temp --access-key-id AKIABWIOJIQFOLNBXXCVSUQ

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ доступа для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

aws iam create-access-key --user-name audit-temp | jq -r '.AccessKey | .AccessKeyId+" "+.SecretAccessKey'
AKIABWIOJIQFOLNBXXCVSUQ p9ge02ebLX9jobdQKmfikRqCiEw3HBylwHyXq0z

IAM GROUP

Бписок Π³Ρ€ΡƒΠΏΠΏ

aws iam list-groups | jq -r .Groups[].GroupName
developers
administrators
testers
marketing-ro

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ/Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹

aws iam create-group --group-name business-ro
aws iam delete-group --group-name business-ro

Бписок ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ ΠΈ Π°Ρ€Π½ΠΎΠ²

aws iam list-policies               | jq -r '.Policies[]|.PolicyName+" "+.Arn'
aws iam list-policies --scope AWS   | jq -r '.Policies[]|.PolicyName+" "+.Arn'
aws iam list-policies --scope Local | jq -r '.Policies[]|.PolicyName+" "+.Arn'

Бписок ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ/Π³Ρ€ΡƒΠΏΠΏΠ°/Ρ€ΠΎΠ»ΠΈ для ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ

aws iam list-entities-for-policy --policy-arn arn:aws:iam::987654321:policy/Marketing-ReadOnly

Бписок ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ для Π³Ρ€ΡƒΠΏΠΏΡ‹

aws iam list-attached-group-policies --group-name business-ro

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ

aws iam attach-group-policy --group-name business-ro --policy-arn arn:aws:iam::aws:policy/DynamoDBReadOnlyAccess

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Π³Ρ€ΡƒΠΏΠΏΡƒ

aws iam add-user-to-group --group-name business-ro --user-name marketing-michael

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹

aws iam remove-user-from-group --group-name business-ro --user-name marketing-alice

Бписок ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅

aws iam get-group --group-name business-ro

Бписок Π³Ρ€ΡƒΠΏΠΏ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

aws iam list-groups-for-user --user-name qa-bob

ΠŸΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ/ΠΎΡ‚ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅

aws iam detach-group-policy --group-name business-ro --policy-arn arn:aws:iam::aws:policy/DynamoDBFullAccess
aws iam attach-group-policy --group-name business-ro --policy-arn arn:aws:iam::aws:policy/DynamoDBFullAccess

НС ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΡƒ, Π²ΠΈΠ»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ запрос Π½Π° тягу!

mdminhazulhaque/aws-cli-cheatsheet

☁️ AWS CLI + Тизнь ΠŸΠΎΠ»Π΅Π³Ρ‡Π΅

πŸ”§ ВрСбуСтся инструмСнты

⚠️ ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ отвСтствСнности: всС рСсурсы, Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, ARN, HostName ITC сгСнСрированы с использованиСм Faker ΠžΡ‚ΠΊΠ°Π· Они Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

πŸ“’ ОглавлСниС

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»: «https://dev.to/mdminhazulhaque/aws-cli-cheatsheet-15f2»