AWS — S3: Разрешить публичный доступ к объектам через VPN

Цель: Разрешить публичный доступ на чтение для всех объектов в S3 корзине только используя VPN подключение, для подключения с мира объекты должны быть не публичными. В качестве сервиса VPN используется OpenVPN, который может быть развернут где угодно, поэтому разрешающие правило будем строить на проверки IP адреса.   Для начала нужно узнать список сетей, которые относятся … Продолжить читать "AWS — S3: Разрешить публичный доступ к объектам через VPN"

Python — AWS EBS создание снапшотов на основе тега и хранение только одной последней версии

Данный скрипт ищет EBS в регионе "eu-west-1" с тегом, ключ которого "Application" и значение передается как аргумент, создает снапшот данного EBS. Так же по тому же принципу он ищет снапшот по тегу, и удаляет все, кроме последнего. Пример запуска для создания снапшота:   Пример запуска для удаления старых снапшотов:   main.py:

Python — AWS S3 хранить N последних артефактов

Данный скрипт получает список всех директорий в корзине и удаляет все объекты в каждой директории, кроме последних "N" указанных. Для запуска скрипта нужно передать два аргумента: Имя корзины Количество последних хранимых объектов Пример запуска:   main.py:

EKS — Зашифровать текущий PV (EBS Volume)

За основу был взят ответ на gitmemory Для того, чтобы зашифровать уже созданный EBS Volume, нужно сделать из него снапшот. Затем из созданного снапшота создать диск в том же регионе, что и оригинальный, так же указать KMS ключ для шифрования. Затем сохраняем манифест текущего PV в файл:   Редактируем файл, заменив ID оригинального диска на … Продолжить читать "EKS — Зашифровать текущий PV (EBS Volume)"

AWS — S3 разрешить доступ для организации

Для того, чтобы разрешить доступ на чтение с S3 корзины для всех аккаунтов входящих в организацию, на бакет нужно повесить следующую политику:   Где "stackset-lambdas" имя S3 корзины, а "o-xxxxxxxxxx" — ваш Organization ID.

Lambda — Для остановки EC2 инстансов, RDS инстансов и сдувания ASG во всех регионах

Данный Python скрипт получает список всех регионов, находит в них EC2 инстансы, RDS инстансы и ASG, и если на ресурсе нет тега "prevent_stop" равного значению "true", то останавливает данный ресурс, а в случае с ASG сжимает его до 0. main.py:   Список нужных разрешений для запуска (помимо "AWSLambdaExecute" политики): ec2:DescribeRegions ec2:DescribeInstances ec2:StopInstances rds:ListTagsForResource rds:DescribeDBInstances rds:StopDBInstance … Продолжить читать "Lambda — Для остановки EC2 инстансов, RDS инстансов и сдувания ASG во всех регионах"

PagerDuty — Python скрипт для создания событий

Данный Python скрипт создает события в PagerDuty используя APIv2. За основу был взят следующий скрипт. Для начала нужно создать "Routing Key", он же "Integration Key", не путать с "API Access Key", который можно использовать для любых API вызовов, нам же нужен только ключ от определенного сервиса. Переходим в настройки сервиса, в моем случае он называется … Продолжить читать "PagerDuty — Python скрипт для создания событий"

AWS Transfer — Public FTP

AWS Transfer поддерживает 3 протокола: SFTP, FTP и FTPS. И только SFTP может иметь публичный эндпоинт, FTP/FTPS можно запускать только внутри VPC. Так же для авторизации по логину/паролю, необходимо использовать кастомный провайдер, больше информации об этом вы можете найти тут. Цель: Создать AWS Transfer сервер для протокола FTP, сервис должен быть публичным и так же … Продолжить читать "AWS Transfer — Public FTP"

AWS — EKS Fargate — Fluentd CloudWatch

На момент написания статьи EKS Fargate не поддерживал драйверлог для записи в CloudWatch. Единственный вариант — использовать Sidecar Создадим ConfigMap, в котором укажем имя EKS кластера, регион и namespace:   Далее создадим сервис аккаунт и ConfigMap с файлом конфигурации для Fluentd. Для этого скопируем текст ниже и сохраним его как файл "fluentd.yaml"   И применим … Продолжить читать "AWS — EKS Fargate — Fluentd CloudWatch"