AWS Notes
5.6K subscribers
445 photos
42 videos
10 files
2.8K links
AWS Notes — Amazon Web Services Educational and Information Channel

Chat: https://xn--r1a.website/aws_notes_chat

Contacts: @apple_rom, https://www.linkedin.com/in/roman-siewko/
Download Telegram
Уважаемые минчане и гости столицы Беларуси!

Через месяц, в декабре этого года, в Минске пройдёт первый AWS Meetup. Вашему вниманию будут представлены цирковые лошади и танцующий слон (зачёркнуто) просто слон (зачёркнуто) доклады от представителей AWS и минских коллег, в том числе вашего покорного слуги.

Количество билетов ограничено, первые сто обратившихся - совершенно бесплатно, а первые двадцать пришедших получат халявные стикеры!

Получить всё можно по адресу @aws_minsk - подписывайтесь! Там же можно записаться в докладчики. Каждому, сделавшему доклад — значок, два стикера и селфи в подарок!

Место и дата будут объявлены позже, следите за обновлениями, обязательно подписывайтесь и расскажите другим (всё-таки очень красивые стикеры).

#meetup
Let's Encrypt штормит

Если у вас проблемы с получением сертификата и вы думаете, что это cert-manager виноват, то может он и виноват, но сейчас это Let's Encrypt:

https://letsencrypt.status.io

#status
Откуда вы читаете здесь обычно?

ap-east-1 - Гонг Конг
ap-south-1 - Мумбай
ap-northeast-1 - Токио
ap-northeast-2 - Сеул
ap-northeast-3 - Осака
ap-southeast-1 - Сингапур
ap-southeast-2 - Сидней
ca-central-1 - Канада
cn-north-1 - Пекин
cn-northwest-1 - Китай
eu-central-1 - Германия
eu-west-1 - Ирландия
eu-west-2 - Лондон
eu-west-3 - Париж
eu-north-1 - Швеция
me-south-1 - Бахрейн
sa-east-1 - Бразилия
us-east-1 - Вашингтон
us-east-2 - Огайо
us-west-1 - Сан-Франциско
us-west-2 - Орегон
eu-south-1 - Италия (откроется в 2020-м году)
af-south-1 - Южная Африка (откроется в 2020-м году)
eu-west-4 - Испания (откроется в 2022-м году)
eu-east-3 - Киев (откроется в каком-то году)
eu-east-4 - Москва (откроется в каком-то году)
eu-east-5 - Казань (откроется в каком-то году)
eu-east-6 - Минск (откроется, может быть, пожалуйста)
eu-north-3 - Питер (откроется в каком-то году)
ma-north-1 - Нур-Султан (откроется в каком-то году)
ma-north-2 - Новосибирск (откроется в каком-то году)

#опрос
Если точно вашего нет — жмите ближайший регион (существующий или будущий).
CloudFormation против всех

Итак, к новостям. К отличным новостям (привыкайте!) - как вам такая ссылочка:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html

Интересно, да?

Тут анонс:

https://aws.amazon.com/about-aws/whats-new/2019/11/now-extend-aws-cloudformation-to-model-provision-and-manage-third-party-resources/

Тут блог:

https://aws.amazon.com/blogs/aws/cloudformation-update-cli-third-party-resource-support-registry/

Тут cfn (CloudFormation Command Line Interface):

https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html

Тут остальное:

https://github.com/aws-cloudformation

Подробности обязательно будут, стэй тьюнд.

#CloudFormation
EKS + Managed Node Groups

EKS получил важное обновление - можно нативно (через апи/консоль/aws-cli, а не запуская вручную специально обученные шаблоны) работать с Worker Node Groups:

https://aws.amazon.com/blogs/containers/eks-managed-node-groups/

Доступно лишь для EKS версии 1.14 (и новее, когда будут) - нужно будет обновиться предварительно.

https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html

#EKS
Про DevOps Engineer Pro

Должен сообщить хорошую новость - я был не прав. Критикуя ранее сертификат DevOps Engineer - Professional, ориентировался на (достаточно свежие) отзывы типа «OpsWorks: Very very…… Important for the exam» или «Elastic Beanstalk - I know the feeling! But this is also a must.»

Однако вчера коллега сдался на DevOps Engineer - Professional (мои поздравления!) и рассказал, что OpsWorks было мало, а Code* сервисов много. Это очень хорошо и серьёзно меняет расклад.

Потому стоит учитывать — ситуация с темами сертификации не стоит на месте и этот прогресс не может не радовать.

#AWS_Certification
Уважаемые читатели!

Если в потоке новостей вы пропустили скаковараённый опрос - просьба нажать нужную клавишу, кто ещё нет.

На текущий момент глобальный расклад такой:

Россия - 53
Украина - 51
Беларусь - 28
Европа - 22
США - 11
Канада - 9
Азия - 4

Проголосовало около 40% от тех, кто просмотрел.

п.с. Если точно вашего местопребывания нет — жмите ближайший регион (существующий или будущий).
Удалил все репосты из @aws_update. Несмотря на опрос, лента уж слишком получается загажена, а по другому опросу более трети здесь новички в AWS. Кому нужно знать новую версию питона лямбды (мне нужно) - подписывайтесь на @aws_update (я подписан 😊 ) и читайте отдельно. А здесь будет @aws_notes.
Метадата v.2

Для защиты от врагов, чтобы они не смогли узнать ваш внешний айпишник, роль и прочие вещи из метадаты, теперь доступна её вторая версия - с токеном:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#configuring-instance-metadata-service

Пример использования метадаты второй версии:

curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"

AQAEAMMiR7trrtLiN8SOOiGQ4PFkK32HW60lliSpf-kcaYnW3RFtiQ==

curl -H "X-aws-ec2-metadata-token: AQAEAMMiR7trrtLiN8SOOiGQ4PFkK32HW60lliSpf-kcaYnW3RFtiQ==" -v http://169.254.169.254/latest/meta-data/public-ipv4

*  Trying 169.254.169.254...
* TCP_NODELAY set
* Connected to 169.254.169.254 (169.254.169.254) port 80 (#0)
GET /latest/meta-data/public-ipv4 HTTP/1.1
Host: 169.254.169.254
User-Agent: curl/7.61.1
Accept: */*
X-aws-ec2-metadata-token: AQAEAMMiR7trrtLiN8SOOiGQ4PFkK32HW60lliSpf-kcaYnW3RFtiQ==

HTTP/1.1 200 OK
X-Aws-Ec2-Metadata-Token-Ttl-Seconds: 21504
Content-Type: text/plain
Accept-Ranges: none
Last-Modified: Wed, 20 Nov 2019 09:05:09 GMT
Content-Length: 13
Date: Wed, 20 Nov 2019 09:11:06 GMT
Server: EC2ws
Connection: close
* Closing connection 0
63.34.171.2

Что можно с ходу сказать по этому поводу. Давно стоило сделать и вот наконец. Однако процесс миграции (на "защищённую" вторую версию) будет долгим и болезенным и займёт годы (без преувеличения).

Если у вас уже сегодня что-то отломалось с переключением ролей под капотом в каких-то утилитах - мои соболезнования, издержки прогресса, ждите обновления или пилите костыли.

Update: а вот пожалуйста.

#EC2 #metadata
Время и регион последнего использования у ролей

Обидно, что добавив, аналогично юзерам, время последнего использования у ролей, в консоли нет региона. :( Региона, где роль последний раз использовалась.

Так обрадовался сначала, но после целый день искал - где же регион запропастился. А он завалился под диван и достаётся оттуда только с помощью #aws_cli:

aws iam get-role --role-name AWSCloudFormationStackSetExecutionRole
{
"Role": {
...
"RoleLastUsed": {
"Region": "eu-west-1",
"LastUsedDate": "2019-07-27T14:29:00Z"
},
...


Но если вы попытаетесь это у себя повторить, то наверняка не обнаружите секции RoleLastUsed, хотя в документации она есть. Просто достаётся она из-под этого из-под дивана лишь свежей версией #aws_cli!

/home/ec2-user # aws --version
aws-cli/1.16.286 Python/2.7.16 Linux/4.14.97-90.72.amzn2.x86_64 botocore/1.13.22

Столько времени потратил на вдалбливание этого (новое - новым!) в очередной раз.

В любой непонятной ситуации - обновляй aws-cli!

#IAM #самообучение
IAM + OU Condition

IAM
в рамках #multi_account_strategy тренда продолжает обрастать функционалом для #Organizations и теперь позволяет управлять доступом для OU (Organization Unit):

https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths

Например, для мультиаккаунтной схемы типа этой, можно сделать общий бакет для проекта Project1 и в него будут иметь доступ все dev-test-stg-prd аккаунты OU Project1:

{
"Sid": "Full access for Project1 OU",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::project1-bucket",
"arn:aws:s3:::project1-bucket/*"
],
"Condition": {
"ForAnyValue:StringLike": {
"aws:PrincipalOrgPaths":["o-dtj1bor777/ou-d1n7-h8xzxidp*"]
}
}
}

#IAM #S3 #Organizations
EC2 console - Instance Types

Теперь для поиска подходящего типа инстанса не нужно идти на другие ресурсы типа (хорошего) https://ec2instances.info, т.к., наконец, в EC2 консоли появилось своё встроенное - отдельная менюшка Instance Types (см. картинку).

Это реализовано с помощью двух доступных апишек - DescribeInstanceTypes и DescribeInstanceTypeOfferings (последней пока нет в документации):

https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTypes.html

Так что при желании можно делать свои варианты.

Удобные фильтры - можно вводить или выбирать. Много полезной информации с привязкой к типу инстанса, ради которой и приходилось раньше ходить в другие места - теперь всё под рукой.

Отдельно только скажу, что для того, чтобы длинные названия колонок видеть полностью, то нужно жать Wrap lines в настройках, иначе названия будут обрезаться - даже на очень широких мониторах.

#EC2 #Console #info
Tag-Based Access Control

Я не раз говорил и писал про глобальный тренд тэгизации всего в Амазоне. И вот с появлением тэгов для сессий при переключении ролей, эта конструкция перешла из количества в качество:

https://aws.amazon.com/blogs/aws/new-for-identity-federation-use-employee-attributes-for-access-control-in-aws/

В версии Амазона используется классическое Attribute-Based Access Control, однако в реальности это ведь Tag-Based Access Control, что и стоит в заголовке поста.

Итак, в дополнение к Role-Based и Resource-Based подходам разделения доступа, у нас теперь выделен в отдельное направление полноценный Tag-Based подход (access control). Который сначала был просто подвидом Resource-Based схемы, но после того, как тэги получили и роли (точно не ресурсная сущность) и вот теперь сессии - теперь можно смело говорить о трёх типах разделения доступа:

1. Resource-Based - вырос когда-то из Bucket policy.
2. Role-Based - сущность IAM.
3. Tag-based (или Attribute-Based) - гибрид предыдущих, обладающий новыми качественным свойствами.

Для последнего в документации теперь есть отдельный раздел с картинками:

https://docs.aws.amazon.com/en_pv/IAM/latest/UserGuide/introduction_attribute-based-access-control.html

Где показывается, как лихо можно решить сложные задачи, точней сложные для попытки их решения в двух первых подходах. Конечно, для этого нужно всё тэгировать, однако с учётом того, что тэги есть и у целых аккаунтов - чувствуете, чем это грозит? Да-да, нужно начинать привыкать.

И хотя ещё далеко не всё допилено, однако теперь своими пользователями в AD через SAML и SSO можно очень гибко рулить, изменяя тэги того, куда им и как можно ходить.

Конечно, это автоматически даст новый тип уязвимости в плане способности получать привилегии на изменение тэгов, но это уже другой вопрос.

В общем, не сложно догадаться, что этой теме будет посвящены не одно и не два обсуждения на предстоящем re:Invent, потому для получения подробностей по данной теме - стоит просто недельку обождать.

#IAM
Писал раньше про крутой формат тематических митапов на #HighLoad - выглядит это вот так.
Ресурсы, которые можно тэгировать

В дополнение к Tag-Based Access Control - апишка для работы с тэгами:

https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/Welcome.html

С её помощью можно тэгировать ресурсы в любом регионе/аккаунте, а также искать тэги (или значения тэгов) в нужном регионе или аккаунте. В общем, это главный инструмент для работы с тэгами.

#tags #ABAC
Редактирование файлов прямо на S3

Если зачем-то нужно именно так, то уже оно есть:

https://github.com/tsub/s3-edit

Настраиваете credentials с помощью aws configure и запускаете s3-edit edit s3://mybucket/myfile.txt - откроется ваш дефолтный редактор. Сохранив - это будет сразу на S3.

#s3
ABAC + AD FS

Опять в продолжение Tag-Based access control (или официально ABAC - Attribute-Based Access Control) - очередные подробности, как и говорилось, о гибкой работе данной схемы с AD:

https://aws.amazon.com/blogs/security/attribute-based-access-control-ad-fs-simplify-iam-permissions-management/

В примере показывается, как можно смапить свои атрибуты из AD на тэги, управляя таким образом доступом к ресурсам через них (tags), а не плодя несчисленное количество ролей под каждую нужду.

#ABAC #AD