Алекса … установите таймер на 15 минут. ⏳
⚠ Мне жаль, если бы GIST иногда отображаются в неправильном порядке. Это все еще кажется открытой проблемой на платформе Forem: https://github.com/forem/forem/issues/14428
Ключи AWS Access позволяет предоставить программный доступ к вашей облачной инфраструктуре AWS. Вы можете использовать эти клавиши доступа для проверки вашей личности и разрешений в вашем CLI AWS, все AWS SDK, но также в вашем конвейере CI/CD, чтобы развернуть ваше приложение, такие как определенные наборы инструментов, такие как SAM, CDK или RAW AWS CLI.
При использовании клавиш доступа автоматическое вращение является очень важным аспектом с точки зрения безопасности, а также встроено в Столп безопасности из AWS хорошо архизированная структура Анкет
В этом посте я опишу решение для автоматического поворота клавиш доступа, которые используются в вашем трубопроводе CI/CD BitBucket, используя API BitBucket.
Лучшие методы управления клавишами AWS Access
Помимо регулярного вращения ваших ключей доступа, AWS описывает некоторые дополнительные Лучшие практики При управлении вашим ключам AWS Access, включая:
- Защитите или не создайте ключ доступа к пользователю root
- Не встраивайте клавиши доступа в свой исходный код
- Периодически повернуть клавиши доступа
- Удалить неиспользованные клавиши доступа
- Настройте MFA для ваших самых конфиденциальных операций
- Используйте роли IAM вместо долгосрочных ключей доступа
Но как я повернуть клавиши доступа, которые я настроил в своем решении CI/CD SaaS, таких как GitHub, Bitbucket или Gitlab?
Хорошая вещь: все основные поставщики предоставляют API для улучшения автоматизации. Давайте посмотрим, как это может работать на Bitbucket.
Вращать, деактивировать, удалять, повторить
Чего мы хотим достичь? Мы хотим, чтобы автоматизированный процесс
- Поверните наши клавиши доступа каждые 90 дней
- Деактивировать неиспользованные клавиши доступа каждые 100 дней
- Удалить неиспользованные клавиши доступа каждые 110 дней
- Обновите переменные развертывания в нашей конфигурации конвейера Bitbucket после каждого вращения.
Хорошо. Вызов принят. Держи мое пиво, и вот и мы:
Чтобы запустить наш процесс, мы настраиваем запланированные события CloudWatch, чтобы вызвать некоторые функции Lambda в течение 90/100/110 дней. Каждая функция Lambda несет специальную ответственность за создание новых, деактивирования или удаления, уже деактивированных клавиш доступа.
Вращение лямбда прямо. Он создает новый ключ доступа и пишет учетные данные в секретном предоставлении секретного менеджера AWS.
Секрет станет источником истины для ключа активного доступа, который также используется в нашей конфигурации конвейера Bitbucket. В следующей главе мы более глубоко взглянем на то, как сейчас синхронизируем секрет с Bitbucket.
Синхронизировать полномочия с BitBucket
Bitbucket предоставляет REST API Чтобы получить доступ к данным или запуска операций на репозитории, рабочие пространства или конфигурации трубопроводов. Чтобы обновить переменные среды в наших конфигурациях развертывания в Bitbucket, нам нужно знать:
- имя рабочей области,
- имя репозитория,
- UUID среды развертывания.
Налив всю эту информацию, мы можем использовать API BitBucket для обновления значения наших переменных развертывания.
Затем мы можем использовать событие CloudWatch, чтобы захватить все Putsecretvalue
События через CloudTrail и вызовуте функцию Sync Lambda, которая отвечает за обновление ваших переменных развертывания BitBucket. Если вы, например, используете AWS CDK , настроить событие CloudWatch как:
Если вы скорее фанат необработанной облачной информации или SAM, то же самое можно будет настроить в вашем любимом инструменте инфраструктуры как код.
А как насчет ролей?
Если вы больше ищете решение, которое не полагается на клавиши доступа, а скорее использует IAM -роли для авторизации, я очень рекомендую решение для развертывания на AWS Использование Bitbucket Pipelines OIDC Анкет
Чтобы использовать OpenID Connect на AWS, вам необходимо будет настроить трубопроводы в качестве поставщика веб -идентификаторов, создать роль IAM и настроить сборку, чтобы взять на себя созданную роль до запуска вашей сборки. Поставщики веб -идентификации позволяют системе получать токен аутентификации, а затем использовать или обмениваться или обмениваться этим токеном на временные учетные данные безопасности в AWS. Эти временные учетные данные отображают роль IAM с разрешениями на использование ресурсов в вашей учетной записи AWS. Узнайте больше о поставщиках веб -идентификации от AWS
Алекса говорит, время закончится … увидимся в следующий раз. Рад получить ваши отзывы, опыт и мысли в комментариях. 👋
Изображение обложки: https://unsplash.com/photos/DoWZMPZ-M9s
Оригинал: «https://dev.to/cremich/automated-rotating-of-aws-access-keys-in-bitbucket-pipelines-1jfi»