AWS СLI v.2 в Docker
Теперь не обязательно ставить aws-cli локально и всегда можно быстро попробовать с последней версией. В общем, удобная и важная возможность — запустить aws-cli в докере:
https://aws.amazon.com/blogs/developer/aws-cli-v2-docker-image/
Легко и просто работает через роль виртуалки, а чтобы прокинуть внутрь credentials или скачать/закачать какие-то файлы, то используем стандартный ключик монтирования
docker run -it
#aws_cli
Теперь не обязательно ставить aws-cli локально и всегда можно быстро попробовать с последней версией. В общем, удобная и важная возможность — запустить aws-cli в докере:
https://aws.amazon.com/blogs/developer/aws-cli-v2-docker-image/
Легко и просто работает через роль виртуалки, а чтобы прокинуть внутрь credentials или скачать/закачать какие-то файлы, то используем стандартный ключик монтирования
-v:docker run -it
-v $(pwd):/aws amazon/aws-cli s3 cp 1.txt s3://my-bucket#aws_cli
Пример
Как-то писал, что подобных конкретных примеров по DynamoDB мало, потому стоит порекомендовать хороший сайт по ней:
https://www.dynamodbguide.com
В частности, добавлю, что его автор, Alex DeBrie (AWS Data Hero), недавно выпустил полноценную книжку:
https://www.dynamodbbook.com/
Её шибко хвалят известные господа в данной области, так что наверняка стоит прочитать, если это ваша тема или у вас много DynamoDB в проекте.
#DynamoDB #aws_cli
query в aws cli с фильтрацией:aws dynamodb query --table-name jenkins \--key-condition-expression "Project = :jp" \--filter-expression "#repo = :ecr" \--expression-attribute-names '{"#repo": "Repo"}' \--expression-attribute-values '{":jp": { "S": "my-service" },":ecr": { "S": "888888888888.dkr.ecr.eu-central-1.amazonaws.com/my-repo" }}'Как-то писал, что подобных конкретных примеров по DynamoDB мало, потому стоит порекомендовать хороший сайт по ней:
https://www.dynamodbguide.com
В частности, добавлю, что его автор, Alex DeBrie (AWS Data Hero), недавно выпустил полноценную книжку:
https://www.dynamodbbook.com/
Её шибко хвалят известные господа в данной области, так что наверняка стоит прочитать, если это ваша тема или у вас много DynamoDB в проекте.
#DynamoDB #aws_cli
Как зашифровать объекты в S3 бакете с помощью aws-cli:
https://aws.amazon.com/blogs/storage/encrypting-existing-amazon-s3-objects-with-the-aws-cli/
Простая и очевидная, но детальная и полезная статья с конкретными командами и подробностями (пере)шифрования ваших файлов на S3.
Запустить несложно, стоит недорого (т.к. лишь за запросы к API) и крайне рекомендуется для того, чтобы привести ваши старые нешифрованные запасы к современному, шифрованному по умолчанию, виду.
#s3 #encryption #aws_cli
https://aws.amazon.com/blogs/storage/encrypting-existing-amazon-s3-objects-with-the-aws-cli/
Простая и очевидная, но детальная и полезная статья с конкретными командами и подробностями (пере)шифрования ваших файлов на S3.
Запустить несложно, стоит недорого (т.к. лишь за запросы к API) и крайне рекомендуется для того, чтобы привести ваши старые нешифрованные запасы к современному, шифрованному по умолчанию, виду.
#s3 #encryption #aws_cli
Amazon
Encrypting existing Amazon S3 objects with the AWS CLI | Amazon Web Services
Encryption of data at rest is increasingly required by industry protocols, government regulations, and internal organizational security standards. Encryption helps you protect your stored data against unauthorized access and other security risks. Amazon S3’s…
Установка AWS CLI v.2 (на самом деле нет):
Всё, у нас последняя версия aws-cli.
Понятно, что нужен Docker, однако обычно это сейчас чуть меньше, чем везде.
Чтобы обновить AWS CLI v.2, просто:
Официальная документация:
https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-docker.html
#aws_cli
alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli'Всё, у нас последняя версия aws-cli.
aws --versionaws-cli/2.0.30 Python/3.7.3 Linux/4.14.158-129.185.amzn2.x86_64 botocore/2.0.0dev34Понятно, что нужен Docker, однако обычно это сейчас чуть меньше, чем везде.
Чтобы обновить AWS CLI v.2, просто:
docker rmi amazon/aws-cliОфициальная документация:
https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-docker.html
#aws_cli
Amazon
Using the official AWS CLI version 2 Docker image - AWS Command Line Interface
This topic describes how to run, version control, and configure the AWS CLI version 2 on Docker. For more information on how to use Docker, see Docker's documentation .
Версии AWS CLI
Стоит учесть, что когда пользуетесь примерами в документации, то там подразумевается использование последней на текущий момент — второй версии.
В основном она повторяет и расширяет возможности первой версии, но есть и критические отличия:
https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration.html
Одно из самых заметных — аутентификация в ECR, теперь это не
https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth
В отличие от первой версии возвращает в
В любом случае, всё новое уже лучше писать под последнюю версию aws-cli.
#aws_cli
Стоит учесть, что когда пользуетесь примерами в документации, то там подразумевается использование последней на текущий момент — второй версии.
В основном она повторяет и расширяет возможности первой версии, но есть и критические отличия:
https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration.html
Одно из самых заметных — аутентификация в ECR, теперь это не
aws ecr get-login, а aws ecr get-login-password:https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth
В отличие от первой версии возвращает в
stdout чисто пароль. Для старых скриптов (где доступна лишь первая версия) можно использовать следующую "замену":aws ecr get-login --region eu-west-1 | awk '{print $6}'В любом случае, всё новое уже лучше писать под последнюю версию aws-cli.
#aws_cli
This media is not supported in your browser
VIEW IN TELEGRAM
Впечатляющая фича в новых версиях AWS CLI — автодополнение, в том числе для JMESPath (
https://github.com/aws/aws-cli/issues/5664
Очень весомый повод обязательно перейти на вторую версию aws-cli.
Подробности в документации:
https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-prompting.html
#aws_cli
--query). https://github.com/aws/aws-cli/issues/5664
Очень весомый повод обязательно перейти на вторую версию aws-cli.
Подробности в документации:
https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-prompting.html
#aws_cli
Чем отличается вторая версия aws-cli от первой, так это включенным по умолчанию pager-ом, из-за которого приходится нажимать клавиши, чтобы увидеть весь вывод на экран, если он большой.
Чтобы исправить это раздражающее поведение в aws-cli v2, то можно добавить строчку
https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html#cli-usage-output-pager
#aws_cli
Чтобы исправить это раздражающее поведение в aws-cli v2, то можно добавить строчку
export AWS_PAGER="" в автозагрузку:https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html#cli-usage-output-pager
#aws_cli
Получить в командной строке время создания текущего AWS аккаунта в формате мм/дд/гг:
AWS_ID=$(aws sts get-caller-identity --query Account --output text)
CREATED=$(aws organizations describe-account --account-id $AWS_ID --query Account.JoinedTimestamp --output text)
date -d $CREATED '+%D'
#aws_cli #queryВ конце 2020-го в EKS появились AddOn-ы:
https://aws.amazon.com/blogs/containers/introducing-amazon-eks-add-ons/
С недавнего времени AddOn для VPC-CNI можно поставить в EKS через CloudFormation:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html
Однако значений
#CloudFormaion #EKS #aws_cli
https://aws.amazon.com/blogs/containers/introducing-amazon-eks-add-ons/
С недавнего времени AddOn для VPC-CNI можно поставить в EKS через CloudFormation:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html
eksAddOn: Type: AWS::EKS::Addon Properties: AddonName: vpc-cni AddonVersion: !Ref VpcCniVersion ClusterName: !Ref eksCluster ResolveConflicts: OVERWRITEОднако значений
AddonVersion в документации на данный момент нет. Чтобы получить доступные варианты, используем describe-addon-versions:aws eks describe-addon-versions --kubernetes-version 1.19 --addon-name vpc-cni --query addons[].addonVersions[].addonVersion[][ "v1.7.9-eksbuild.1", "v1.7.6-eksbuild.1", "v1.7.5-eksbuild.1", "v1.6.3-eksbuild.1"]#CloudFormaion #EKS #aws_cli
Amazon
Introducing Amazon EKS add-ons: lifecycle management for Kubernetes operational software | Amazon Web Services
From the start, our goal with Amazon Elastic Kubernetes Service (Amazon EKS) has been to build a fully managed service that makes it easy for you to run Kubernetes on AWS without needing to be an expert in managing Kubernetes clusters. When Amazon EKS first…
Суровый баш для обновления сессионных токенов для AWS CLI при использовании MFA:
https://blog.ivnilv.com/tools/sacc/
#bash #aws_cli
https://blog.ivnilv.com/tools/sacc/
#bash #aws_cli
Закрытие AWS account через AWS SDK & AWS CLI:
https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_close.html#aws-cli-&-aws-sdks
Не прошло и пять лет. Ан нет, прошло.
Нужно учитывать следующие особенности закрытия (на самом деле сначала приостановки -
▫️ Закрыть можно любой аккаунт (member account, иногда называются как sub-account) кроме главного (management account, ранее master account).
▫️ Пока команда выполнения закрытия аккаунта находится в процессе (обычно несколько минут), аккаунт будет в состоянии
▫️ Закрыть сразу все аккаунты не получится. Можно закрыть лишь 10% от общего количества в течение месяца.
▫️ Случайно закрытый нужный аккаунт можно восстановить в течение 90 дней через Support (пока аккаунт находится в состоянии
Подробности API для Organizations -
https://docs.aws.amazon.com/organizations/latest/APIReference/API_CloseAccount.html
Особенности закрытия аккаунтов для AWS GovCloud (US):
https://docs.aws.amazon.com/govcloud-us/latest/UserGuide/Closing-govcloud-account.html
⚠️ На момент публикации документация на команду AWS CLI close-account пока ещё не доступна.
#Organizations
https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_close.html#aws-cli-&-aws-sdks
aws organizations close-account --account-id 123456789012Не прошло и пять лет. Ан нет, прошло.
Нужно учитывать следующие особенности закрытия (на самом деле сначала приостановки -
SUSPENDED) AWS аккаунтов в Organizations:▫️ Закрыть можно любой аккаунт (member account, иногда называются как sub-account) кроме главного (management account, ранее master account).
▫️ Пока команда выполнения закрытия аккаунта находится в процессе (обычно несколько минут), аккаунт будет в состоянии
PENDING_CLOSURE. По её отработке он переходит в состояние SUSPENDED, в котором будет висеть ещё три месяца, прежде, чем окончательно удалится.▫️ Закрыть сразу все аккаунты не получится. Можно закрыть лишь 10% от общего количества в течение месяца.
▫️ Случайно закрытый нужный аккаунт можно восстановить в течение 90 дней через Support (пока аккаунт находится в состоянии
SUSPENDED).Подробности API для Organizations -
CloseAccount:https://docs.aws.amazon.com/organizations/latest/APIReference/API_CloseAccount.html
Особенности закрытия аккаунтов для AWS GovCloud (US):
https://docs.aws.amazon.com/govcloud-us/latest/UserGuide/Closing-govcloud-account.html
⚠️ На момент публикации документация на команду AWS CLI close-account пока ещё не доступна.
#Organizations
Amazon
Closing a member account in an organization with AWS Organizations - AWS Organizations
Close, delete, or suspend an AWS account that you no longer need.
👍5❤3🎉2
aws --debugВ случае проблем при работе с AWS CLI стоит помнить про стандартный ключик
--debug, который покажет всё, что происходит под капотом во время выполнения команды aws.https://awscli.amazonaws.com/v2/documentation/api/latest/reference/index.html#global-options
Любая команда выдаст простыню логов, в частности, если присмотреться, то можно увидеть, как команда
aws перебирает источники credentials:Looking for credentials via: envLooking for credentials via: assume-roleLooking for credentials via: shared-credentials-fileLooking for credentials via: custom-processLooking for credentials via: config-fileLooking for credentials via: ec2-credentials-fileLooking for credentials via: boto-configLooking for credentials via: container-roleLooking for credentials via: iam-roleВ результате наглядно видны приоритеты получения aws-cli credentials, что вполне может навести на мысль, почему не работает как нужно.
Если же думать и присматриваться лень, то скормив эту простыню ChatGPT, можно рассчитывать на максимально точные рекомендации.
#aws_cli
Amazon
Configuring settings for the AWS CLI - AWS Command Line Interface
Configure settings that the AWS CLI uses to interact with AWS.
👍11😁1🤔1
Начиная с версии AWS CLI v2.30.3 можно генерить/обновлять креды для IAM юзеров с MFA без сторонних утилит с помощью команды:
aws configure mfa-login
Для удобства лучше сразу добавить имя генерируемого профиля с помощью
#
#
p.s. IAM юзеры зло — используйте SSO (IAM Identity Center).
#aws_cli
aws configure mfa-login
Для удобства лучше сразу добавить имя генерируемого профиля с помощью
--update-profile , иначе сгенерит автоматически, а также --duration-seconds , максимум на 36 часов и ARN устройства --serial-number, чтобы не вводить отдельно:#
aws --profile=aws-notes-s3-user configure mfa-login --update-profile=mfa-aws-notes-s3-user --duration-seconds=129600 --serial-number=arn:aws:iam::984475386489:mfa/My-iPhoneMFA token code: 969969
Temporary credentials written to profile 'mfa-aws-notes-s3-user'
Credentials will expire at 2025-09-18T19:50:40+00:00
To use these credentials, specify --profile mfa-aws-notes-s3-user when running AWS CLI commands
#
aws --profile mfa-aws-notes-s3-user s3 ls2018-11-18 16:17:32 aws-notes-test
p.s. IAM юзеры зло — используйте SSO (IAM Identity Center).
#aws_cli
GitHub
aws-cli/CHANGELOG.rst at v2 · aws/aws-cli
Universal Command Line Interface for Amazon Web Services - aws/aws-cli
👍14💯2