Ресурсы AWS, которые могут быть публично доступны
Цель этого репозитория — поддерживать список всех ресурсов AWS, которые могут быть публично доступны, а в перспективе и тех, которыми можно делиться с недоверенными аккаунтами (этот раздел ещё в разработке и пока не включён сюда).
В этом списке применяются следующие концепции:
- Ресурсы, которые могут быть косвенно доступны через другой ресурс, не включены. Например, журналы CloudTrail могут отправляться в публичный S3-бакет, но именно S3-бакет неправильно настроен, поэтому CloudTrail не указан как ресурс, который можно сделать публичным.
- Некоторые ресурсы могут требовать нескольких настроек определённым образом, чтобы считаться публичными. Например, секрет Secrets Manager, зашифрованный с помощью KMS, потребует, чтобы и секрет, и ключ KMS были публичными для доступа к секрету. Для целей этого списка я учитываю только политику ресурса секрета. Аналогично для управляемых кластеров ElasticSearch нужна как политика ресурса, разрешающая публичный доступ, так и наличие IP-адреса вне VPC. Я учитываю только политику ресурса. Для EC2 можно создать EC2 с публичным IP, но привязать к нему ограниченную группу безопасности, которую позже, возможно, откроют для публичного доступа. Я рассматриваю создание EC2 с публичным IP, а не изменение группы безопасности как интересующее действие.
План развития
Я бы хотел, чтобы в этом репозитории со временем появилось следующее:
- Примеры команд CLI для создания как приватного, так и публичного ресурса
- Соответствующие журналы CloudTrail для этих двух событий, чтобы вы могли создавать и тестировать решения для мониторинга. Например, вы можете увидеть примеры событий CloudTrail для StreamAlert здесь
- Соответствующие вызовы Describe для ресурсов, показывающие, как выглядят эти ресурсы, когда они публичны. Например, вы можете увидеть примеры JSON-ответов в тестовых данных CloudMapper здесь.
Ресурсы, которые можно сделать публичными через политики ресурсов
Репозиторий ECR
Действия:
Lambda
Разрешает вызов функции
Действия:
Слой Lambda
Действия:
Репозиторий бессерверных приложений (Serverless Application Repository)
Действия:
Backup
Документация
Действия:
EFS
TODO: Необходимо подтвердить, что это действительно можно передавать другим аккаунтам. Некоторые формулировки в документации наводят на мысль, что это может быть доступно только для субъектов в рамках одного аккаунта.
Действия:
Glacier
Действия:
S3
S3-бакеты могут быть публичными через политики и ACL. S3-объекты могут быть публичными через ACL. ACL можно задавать при создании бакета или объекта.
Действия:
IAM Role
Действия:
KMS Keys
Действия:
Secrets Managers
Действия:
CloudWatch Logs
Действия:
EventBridge
Разрешает только отправку данных в аккаунт
Действия:
Документация
Действия:
ElasticSearch
Действия:
Glue
Действия:
SNS
Действия:
SQS
Действия:
SES
Документация
Действия:
Ресурсы, которые можно сделать публичными через API общего доступа
AMI
Действия:
FPGA-образ
Действия:
Снимок EBS
Действия:
Снимок RDS
Действия:
Снимок кластера БД RDS
Действия:
Ресурсы, которые можно сделать публичными через сетевой доступ
API Gateway
Существуют связанные политики ресурсов (см. здесь), которые могут сделать этот ресурс подходящим для нескольких категорий?
Действия:
CloudFront
Действия:
Redshift
Действия:
RDS
Действия:
EC2
Действия:
Elastic IP
Действия:
ECS
Действия:
Global Accelerator
Действия:
ELB
Действия:
Lightsail
Действия:
Neptune
Действия:
ElasticCache
Действия:
EMR
Действия: