1
0
Fork 0
mirror of https://github.com/nickpoida/og-aws.git synced 2025-03-09 15:40:06 +00:00

Update ru.md

This commit is contained in:
Nikolay Poida 2020-04-09 01:42:06 +06:00 committed by GitHub
parent 080c4347c7
commit 04354e93f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1735,55 +1735,54 @@ CloudFormation
- 🔸Развертывание больших стэков (например, большого количества ресурсов) может быть проблематичным по причине неинтуитивных лимитов API. Например, в API Gateway `CreateDeployment` API имеет лимит по умолчанию - [3 запроса в минуту](https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html) по состоянию на 1/12/2018. Этот предел легко превышается даже в стеках CloudFormation среднего размера. Создание оповещений CloudWatch другой часто превышаемый лимит (`PutMetricAlarm`, 3 tps по состоянию на 1/12/2018), особенно когда создается много политик масштабирования для DynamoDB. Одним из путей обхода этого лимита является включение условия 'DependsOn' в цепочку создания ресурса в шаблоне CloudFormation.
- 🔸Создание/удаление стэков может быть не идеально чистым. Некоторые ресурсы оставляют после себя следы в вашем AWS аккаунте даже после удаления. Например, Lambda оставляется после себя лог группы в CloudWatch, которые никогда не истекают.
VPCs, Network Security, and Security Groups
VPC, Сетевая безопасность и Группы безопасности
-------------------------------------------
### VPC Basics
### Основы VPC
- 📒 [Homepage](https://aws.amazon.com/vpc/) ∙ [User guide](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide) ∙ [FAQ](https://aws.amazon.com/vpc/faqs/) ∙ [Security groups](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html) ∙ [Pricing](https://aws.amazon.com/vpc/pricing/)
- **VPC** (Virtual Private Cloud) is the virtualized networking layer of your AWS systems.
- Most AWS users should have a basic understanding of VPC concepts, but few need to get into all the details. VPC configurations can be trivial or extremely complex, depending on the extent of your network and security needs.
- All modern AWS accounts (those created [after 2013-12-04](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html)) are “EC2-VPC” accounts that support VPCs, and all instances will be in a default VPC. Older accounts may still be using “EC2-Classic” mode. Some features dont work without VPCs, so you probably will want to [migrate](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html).
- 📒 [Домашняя страница](https://aws.amazon.com/vpc/) ∙ [Руководство пользователя](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide) ∙ [ЧаВо](https://aws.amazon.com/vpc/faqs/) ∙ [Группы безопасности](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html) ∙ [Расценки](https://aws.amazon.com/vpc/pricing/)
- **VPC** (Виртуальное частное облако(Virtual Private Cloud)) - это виртуализированный сетевой уровень ваших систем AWS.
- Большая часть пользователей AWS должна иметь базовое понимание концепций VPC, но только некоторым потребуется разбираться во всех деталях. Конфигурации VPC могут быть простейшими или экстремально сложными, в зависимости от степени требований к вашей сети и безопасности.
- Все современные учетные записи AWS (которые созданы [после 2013-12-04](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-vpc.html)) являются аккаунтами “EC2-VPC”, которые поддерживают VPC и все инстансы находятся в VPC по умолчанию. Более старые учетные записи могут до сих пор использовать режим “EC2-Classic”. Некоторые функции не работают без VPC, так что вы наверняка захотите [мигрировать](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-migrate.html).
### VPC and Network Security Tips
### Советы по VPC и сетевой безопасности
- ❗**Security groups** are your first line of defense for your servers. Be extremely restrictive of what ports are open to all incoming connections. In general, if you use CLBs, ALBs or other load balancing, the only ports that need to be open to incoming traffic would be port 22 and whatever port your application uses. Security groups access policy is 'deny by default'.
- **Port hygiene:** A good habit is to pick unique ports within an unusual range for each different kind of production service. For example, your web frontend might use 3010, your backend services 3020 and 3021, and your Postgres instances the usual 5432. Then make sure you have fine-grained security groups for each set of servers. This makes you disciplined about listing out your services, but also is more error-proof. For example, should you accidentally have an extra Apache server running on the default port 80 on a backend server, it will not be exposed.
- **Migrating from Classic**: For migrating from older EC2-Classic deployments to modern EC2-VPC setup, [this article](http://blog.kiip.me/engineering/ec2-to-vpc-executing-a-zero-downtime-migration/) may be of help.
- You can [migrate Elastic IPs between EC2-Classic and EC2-VPC](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-eip-migration).
- For basic AWS use, one default VPC may be sufficient. But as you scale up, you should consider mapping out network topology more thoroughly. A good overview of best practices is [here](http://blog.flux7.com/blogs/aws/vpc-best-configuration-practices).
- Consider controlling access to you private AWS resources through a [VPN](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpn-connections.html).
- You get better visibility into and control of connection and connection attempts.
- You expose a smaller surface area for attack compared to exposing separate (potentially authenticated) services over the public internet.
- e.g. A bug in the YAML parser used by the Ruby on Rails admin site is much less serious when the admin site is only visible to the private network and accessed through VPN.
- Another common pattern (especially as deployments get larger, security or regulatory requirements get more stringent, or team sizes increase) is to provide a [bastion host](https://www.pandastrike.com/posts/20141113-bastion-hosts) behind a VPN through which all SSH connections need to transit.
- For a cheap VPN to access private AWS resources, consider using a point-to-site software VPN such as [OpenVPN](https://openvpn.net/). It can either be installed using the [official AMI](https://docs.openvpn.net/how-to-tutorialsguides/virtual-platforms/amazon-ec2-appliance-ami-quick-start-guide/), though you are limited to 2 concurrent users on the free license, or it can be installed using the openvpn package on linux. The linux package allows for unlimited concurrent users but the installation is less straightforward. This [OpenVPN installer script](https://github.com/Nyr/openvpn-install) can help you install it and add client keys easily.
- 🔹Consider using other security groups as sources for security group rules instead of using CIDRs — that way, all hosts in the source security group and only hosts in that security group are allowed access. This is a much more dynamic and secure way of managing security group rules.
- **VPC Flow Logs** allow you to monitor the network traffic to, from, and within your VPC. Logs are stored in CloudWatch Logs groups, and can be used for security monitoring (with third party tools), performance evaluation, and forensic investigation.
- See the [VPC Flow Logs User Guide](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/flow-logs.html) for basic information.
- See the [flowlogs-reader](https://github.com/obsrvbl/flowlogs-reader) CLI tool and Python library to retrieve and work with VPC Flow Logs.
- **IPv6** [is available in VPC](https://aws.amazon.com/blogs/aws/new-ipv6-support-for-ec2-instances-in-virtual-private-clouds/). Along with this announcement came the introduction of the [Egress-Only Internet Gateway](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/egress-only-internet-gateway.html). In cases where one would use NAT Gateways to enable egress-only traffic for their VPC in IPv4, one can use an Egress-Only Internet Gateway for the same purpose in IPv6.
- ❗**Группы безопасности(Security Groups)** - первая линия обороны ваших серверов. Экстремально ограничиваейте набор открытых портов для всех входящих соединений. В общем, если вы используете CLB, ALB или любой другой балансировщик траффика, единственные порты, которые должны быть открыты - это порт 22 и любой порт, который использует ваше приложение. Политика доступа в группах безопасности - 'запрет по умолчанию'.
- **Гигиена портов:** Хорошей привычкой является выбор уникальных портов из необычного диапазона для каждого из разных типов продуктивных сервисов. Например, ваш фронтенд веб-сервер может использовать порт 3010, ваши бэкенд сервера - порты 3020 и 3021, а ваш инстанс Postgres обычный порт 5432. Затем убедитесь, что у вас есть детализированные группы безопасности для каждого набора серверов. Это делает вас дисциплинированным в отношении учета ваших сервисов, а также обеспечит дополнительную защиту от ошибок. Например, если у вас случайно есть дополнительный сервер Apache, работающий на порте 80 по умолчанию на внутреннем сервере, он не будет выставлен наружу.
- **Миграция с EC2-Classic**: Для миграции со старых развертываний EC2-Classic в современный EC2-VPC прочтите [эту статью](http://blog.kiip.me/engineering/ec2-to-vpc-executing-a-zero-downtime-migration/), она может помочь.
- Вы можете [переносить Elastic IP между EC2-Classic и EC2-VPC](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-eip-migration).
- Для основного использования AWS, вполне достаточного одного VPC по умолчанию. Но, по мере расширения, вам стоит рассмотреть более тщательное составление вашей сетевой топологии. Хороший обзор лучших практик - [тут](http://blog.flux7.com/blogs/aws/vpc-best-configuration-practices).
- Рассмотрите возможность управления доступом к вашим частным ресурсам AWS через [VPN](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpn-connections.html).
- Вы получаете прозрачность и контроль подключений и попыток подключения.
- Вы предоставляете меньшую площадь для атаки по сравнению с раскрытием отдельных (потенциально аутентифицированных) сервисов через общедоступный Интернет.
- Например, баг в парсере YAML, который используется на админстративном сайте Ruby on Rais, является гораздо менее серьезной проблемой, если админстративный сайт виден только из внутренней сети и доступен только через VPN.
- Другой распространенный шаблон (особенно по мере увеличения масштабов развертывания, ужесточения требований к безопасности или нормативных требований или увеличения размеров группы) - это обеспечение создания [узла бастиона](https://www.pandastrike.com/posts/20141113-bastion-hosts) за VPN, через который должны проходить все соединения SSH.
- Для дешевого VPN доступа к частным ресурсам AWS рассмотрите возможность использования программного обеспечения VPN «точка-сайт», такого как [OpenVPN](https://openvpn.net/). Он может быть установлен, как используя [официальный AMI](https://docs.openvpn.net/how-to-tutorialsguides/virtual-platforms/amazon-ec2-appliance-ami-quick-start-guide/), правда на бесплатной лицензии вы ограничены 2 одновременными пользователями, или может быть установлен используя пакет openvpn на Linux. Пакет для Linux допускает неограниченное количество одновременных пользователей, но установка менее проста. Этот [скрипт установки OpenVPN](https://github.com/Nyr/openvpn-install) поможет вам легко провести установку и добавить клиентские ключи.
- 🔹Подумайте об использовании других групп безопасности в качестве источников для правил групп безопасности вместо использования CIDR - таким образом, всем узлам в исходной группе безопасности и узлам в этой группе безопасности, и только им разрешен доступ. Это гораздо более динамичный и безопасный способ управления правилами групп безопасности.
- **Поточные логи VPC(VPC Flow Logs)** позволяет вам мониторить сетевой траффик, как входящий, так и исходящий, а также траффик внутри VPC. Логи сохраняются в группах логов CloudWatch и могут использоваться для мониторинга безопасности (с использованием сторонних инструментов), оценки производительности и расследования информационных инцидентов.
- Ознакомьтесь [с руководством пользователя по поточным логам VPC(VPC Flow Logs)](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/flow-logs.html) для получения общей информации.
- Рассмотрите инструмент для коммандной строки и библиотеку для Python [flowlogs-reader](https://github.com/obsrvbl/flowlogs-reader) для получения и работы с поточными логами VPC.
- **IPv6** [доступен в VPC](https://aws.amazon.com/blogs/aws/new-ipv6-support-for-ec2-instances-in-virtual-private-clouds/). Наряду с этим объявлением, прошло представление [Интернет шлюза только-на-исход(Egress-Only Internet Gateway)](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/egress-only-internet-gateway.html). В тех случаях, когда можно использовать шлюзы NAT для включения только исходящего трафика для их VPC в IPv4, можно использовать интернет шлюз только-на-исход только для той же цели в IPv6.
- Amazon provides an IPv6 CIDR block for your VPC at your request - at present you cannot implement your own IPv6 block if you happen to own one already.
- New and existing VPCs can both use IPv6. Existing VPCs will need to be configured to have an IPv6 CIDR block associated with them, just as new VPCs do.
- По вашему запросу Amazon предоставляет блок CIDR IPv6 для вашего VPC - в настоящее время вы не можете подключить свой собственный блок IPv6, если так случилось, что он у вас уже есть.
- Новые и существующие VPC могут использовать IPv6. Существующие VPC должны быть настроены так, чтобы с ними ассоциировался блок CIDR IPv6, также, как и в новых VPC.
### PrivateLink
- 📒[Homepage](https://aws.amazon.com/privatelink/) ∙ [User Guide](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) ∙ [Pricing](https://aws.amazon.com/privatelink/pricing/)
- One of the uses for Private link is [Interface VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) deploys an ENI into your VPC and subnets which allows you direct access to the AWS API's as if the were accessible locally in your VPC without having to go out to the internet.
- Another use case would be to expose a service of your own to other accounts in AWS through a [VPC Endpoint Service](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html)
- 📒[Домашняя страница](https://aws.amazon.com/privatelink/) ∙ [Руководство пользователя](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) ∙ [Расценки](https://aws.amazon.com/privatelink/pricing/)
- Одним из способов применения Private link является [интерфейс конечных точек VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) который разворачивает ENI в вашем VPC и подсетях, что позволяет получить прямой доступ к API AWS таким образом, как если бы они были бы доступны локально в вашем VPC без необходимости выхода в интернет.
- Другим вариантом использования является возможность открытия вашего сервиса другим учетным записям AWS через [сервис конечных точек VPC(VPC Endpoint Service)](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html)
### VPC and Network Security Gotchas and Limitations
- 🔸VPCs are tied to one Region in one Account. Subnets are tied to one VPC and limited to one Availability Zone.
- 🔸Security groups are tied to one VPC. If you are utilizing infrastructure in multiple VPCs you should make sure your configuration/deployment tools take that into account.
- 🔸[VPC Endpoints](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html) are currently only available for S3 and DynamoDB. If you have a security requirement to lockdown outbound traffic from your VPC you may want to use [DNS filtering](https://aws.amazon.com/blogs/security/how-to-add-dns-filtering-to-your-nat-instance-with-squid/) to control outbound traffic to other services.
- ❗Be careful when choosing your VPC IP CIDR block: If you are going to need to make use of [ClassicLink](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html), make sure that your private IP range [doesnt overlap](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html#classiclink-limitations) with that of EC2 Classic.
- ❗If you are going to peer VPCs, carefully consider the cost of [data transfer between VPCs](https://aws.amazon.com/vpc/faqs/#Peering_Connections), since for some workloads and integrations, this can be prohibitively expensive.
- ❗New RDS instances require a [subnet group](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets) within your VPC. If youre using the [default VPC](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html) this isnt a concern, it will contain a subnet for each availability zone in your region. However, if youre creating your own VPC and plan on using RDS, make sure you have at least two subnets within the VPC to act as the subnet group.
- ❗If you delete the default VPC, you can [recreate it via the CLI or the console](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html#create-default-vpc).
- ❗Be careful with VPC VPN credentials! If lost or compromised, the VPN endpoint must be deleted and recreated. See the instructions for [Replacing Compromised Credentials](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html#CompromisedCredentials).
- ❗Security Groups and Route Tables apply entries separately for IPv4 and IPv6, so one must ensure they add entries for both protocols accordingly.
- 💸Managed NAT gateways are a convenient alternative to
manually managing [NAT instances](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPCNATInstance.html), but they do come at a cost per gigabyte. Consider [alternatives](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-comparison.html) if you're transferring many terabytes from private subnets to the internet. If you transfer terabytes/petabytes of data from EC2 instances in private subnets to S3, avoid the [NAT gateway data processing charge](https://aws.amazon.com/vpc/pricing/) by setting up a Gateway Type VPC Endpoint and route the traffic to/from S3 through the VPC endpoints instead of going through the NAT gateways.
### Ошибки и ограничения, связанные с VPC и сетевой безопасностью
- 🔸VPC привязаны к одному региону в одной учетной записи. Подсети привязаны к одному VPC и ограничены одной зоной доступности.
- 🔸Группы безопасности привязаны к одному VPC. Если вы используете инфраструктуру в нескольких VPC, вы должны убедиться, что ваши инструменты конфигурации/развертывания учитывают это.
- 🔸[Конечные точки VPC](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints.html) на текущий момент доступны только для S3 и DynamoDB. Если требования безопасности включают необходимость блокировки исходящего траффика с вашей VPC, возможно вы захотите воспользоваться [DNS фильтрацией](https://aws.amazon.com/blogs/security/how-to-add-dns-filtering-to-your-nat-instance-with-squid/) для контроля исходящего траффика к другим сервисам.
- ❗Будьте аккуратны при выборе CIDR блока ip-адресов для VPC: Если вам будет необходимо использовать [ClassicLink](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html), убедитесь, что ваш частный диапазон IP-адресов [не пересекается](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html#classiclink-limitations) с диапазоном EC2 Classic.
- ❗Если вы собираетесь соединение между VPC, тщательно изучите стоимость [передачи данных между VPC](https://aws.amazon.com/vpc/faqs/#Peering_Connections), так как для отдельных рабочих нагрузок и интеграций, она может быть чрезмерно дорогой.
- ❗Для новых инстансов RDS требуется [группа подсетей](http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets) в вашем VPC. Если вы используете [VPC по умолчанию](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html), это не будет проблемой, так как VPC содержит подсеть для каждой зоны доступности в вашем регионе. В любом случае, если вы создаете свой VPC и планируете использование RDS, убедитесь, что у вас есть как минимум две подсети в VPC, чтобы выступать в виде группы подсетей.
- ❗Если вы удалили VPC по умолчанию, вы можете [пересоздать через CLI или через консоль](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html#create-default-vpc).
- ❗Будьте крайне аккуратны с учетными данными VPN для подключения к VPC! Если они потеряны или скомпроментированы, конечная точка VPN должна быть удалена и пересоздана. Ознакомьтесь с инструкцией по [замене скомпроментированных учетных данных](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html#CompromisedCredentials).
- ❗Группы безопасности и таблицы маршрутов применяют записи отдельно для IPv4 и IPv6, поэтому необходимо убедиться, что записи добавлены для обоих протоколов соответственно.
- 💸Управляемый шлюзы NAT это удобная альтернатива управляемому вручную [инстансу NAT](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPCNATInstance.html), но они тарифицируются погигабайтно. Рассмотрите [альтернативные варианты](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-comparison.html) если вы передаете много терабайт из частных подсетей в интернет. Если вы передаете терабайты/петабайты данных с инстансов EC2 из частных подсетей в S3, избегайте [оплаты за обработку данных шлюзом NAT](https://aws.amazon.com/vpc/pricing/) путем установки шлюзовой конечной точки VPC и направляйте траффик в/из S3 через эту конечную точку, вместо того, чтобы пересылать данные через шлюз NAT.
KMS
---