Принцип минимальных привилегий
Примените принцип минимальных привилегий на практических примерах и грамотно используйте управляемые AWS-политики и встроенные политики.
«Принцип минимальных привилегий» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Что такое минимально необходимые разрешения?
Минимально необходимые разрешения означают, что каждой идентификационной записи предоставляются только действительно нужные разрешения — и ничего лишнего. Если учётные данные утекут, ущерб останется небольшим. 🛡️
Начинайте с запрета по умолчанию
AWS упрощает применение минимально необходимых разрешений: новый пользователь или роль начинают с нулевыми разрешениями. Вы добавляете именно необходимое, вместо того чтобы удалять ненужное.
Избыточные разрешения: распространённая ошибка
Классическая ошибка — выдать AdministratorAccess, потому что это быстро. Тогда одна ошибка в коде может удалить Ваши данные. Вместо этого ограничивайте доступ конкретными действиями и Resource.
# AVOID: wildcard permissions
{
'Effect': 'Allow',
'Action': '*',
'Resource': '*'
}
# PREFER: scoped permissions
{
'Effect': 'Allow',
'Action': ['dynamodb:GetItem', 'dynamodb:Query'],
'Resource': 'arn:aws:dynamodb:us-east-1:123456789:table/Orders'
}Policy, управляемые AWS, и policy, управляемые клиентом
Policy, управляемые AWS, удобны, но часто слишком широки. Policy, управляемые клиентом, позволяют указать именно те корзины или таблицы, которые действительно использует Ваше приложение.
# Create a scoped customer-managed policy
aws iam create-policy \
--policy-name LambdaOrdersReader \
--policy-document file://orders-reader-policy.jsonАнализатор доступа IAM
IAM Access Analyzer отслеживает Resource, доступные за пределами Вашего аккаунта. Он даже может создавать строгие policy, анализируя, что на самом деле использовала идентификационная запись.
# Enable IAM Access Analyzer for the account
aws accessanalyzer create-analyzer \
--analyzer-name MyAccountAnalyzer \
--type ACCOUNTИспользование условий для усиления разрешений
Даже когда действие необходимо разрешить, условия снижают риск: потребуйте MFA, ограничьте доступ IP-адресом офиса или разрешите пользователю работать только со своей папкой. ✨
# Allow users to manage only their own folder in S3
{
'Effect': 'Allow',
'Action': ['s3:GetObject', 's3:PutObject'],
'Resource': 'arn:aws:s3:::shared-bucket/${aws:username}/*'
}Границы разрешений как защитные ограничения
Если Вы позволяете командам самостоятельно управлять IAM, граница разрешений ограничивает действия их ролей. Они могут свободно работать, но никогда не выйдут за установленный Вами предел.
Ограниченный по времени доступ с помощью policy сеанса
При принятии роли Вы можете передать policy сеанса, которая ещё сильнее ограничит роль на время этого сеанса. Это идеально подходит для предоставления pipeline только необходимых разрешений.
# Assume a role with a restrictive session policy
aws sts assume-role \
--role-arn arn:aws:iam::123456789012:role/DeployRole \
--role-session-name deploy-session \
--policy '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"lambda:UpdateFunctionCode","Resource":"arn:aws:lambda:us-east-1:123456789012:function:MyApp"}]}'Управление доступом на основе тегов (ABAC)
ABAC предоставляет доступ на основе совпадения тегов, вместо перечисления каждого Resource. Например, можно разрешить роли останавливать только те instance EC2, которым назначен тег её собственной команды.
{
'Effect': 'Allow',
'Action': 'ec2:StopInstances',
'Resource': '*',
'Condition': {
'StringEquals': {
'ec2:ResourceTag/Team': '${aws:PrincipalTag/Team}'
}
}
}Проверка неиспользуемых разрешений
AWS отслеживает время последнего использования каждого разрешения. Данные о последнем доступе выявляют разрешения, которые не использовались более 90 дней и являются очевидными кандидатами на удаление.
# Get service last-accessed data for a role
aws iam generate-service-last-accessed-details \
--arn arn:aws:iam::123456789012:role/MyLambdaRole
# Retrieve the report (use the JobId from above)
aws iam get-service-last-accessed-details --job-id <JobId>Минимально необходимые разрешения для доступа к данным
Применяйте принцип минимально необходимых разрешений и к данным: ограничивайте пользователей их собственной папкой S3, ограничивайте доступ к DynamoDB по ID пользователя и предоставляйте каждому приложению отдельные данные для входа в базу данных.
Быстрая проверка
Проверьте своё понимание концепций AWS Solutions Architect (SAA-C03) из этого урока.
Итоги урока
Кратко: минимально необходимые разрешения означают минимальный набор разрешений, Access Analyzer находит неиспользуемые разрешения, а условия и границы помогают строго ограничить доступ. Далее: лучшие практики IAM и MFA.
Часто задаваемые вопросы
Урок «Принцип минимальных привилегий» бесплатный?
Да — полный текст урока «Принцип минимальных привилегий» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Принцип минимальных привилегий»?
Примените принцип минимальных привилегий на практических примерах и грамотно используйте управляемые AWS-политики и встроенные политики. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Принцип минимальных привилегий»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Пользователи и группы IAM
- Роли и политики IAM
- Принцип минимальных привилегий
- Рекомендации по IAM и MFA