Skip to main content

IAM

Identity and Access Management

Имеет следующие объекты:

  • Root account: создается по умолчанию, не должен использоваться или передаваться.
  • Users
  • Groups: содержит пользователей

IAM - нужен для доступа в аккаунт или с его помощью можно указать, кто или что может получить доступ к сервисам и ресурсам AWS.

info

IAM vs SSO? - SSO настраивает SAML провайдера и роль в IAM в аккаунте. SSO использует API-интерфейс sts:AssumeRoleWithSAML, а затем, приняв другие роли после этого, будет использовать API-интерфейс sts:AssumeRole.

Единый вход в систему (SSO) – это решение для аутентификации, которое дает пользователям возможность входить в несколько приложений и на несколько веб-сайтов с использованием единовременной аутентификации пользователя. Учитывая то, что сегодня пользователи часто входят в приложения непосредственно из своих браузеров, организации создают стратегии управления доступом с различными приоритетами, которые как повышают безопасность, так и улучшают взаимодействие с пользователем. SSO реализует оба этих аспекта, поскольку пользователи могут получать доступ ко всем ресурсам, защищенным паролями, без повторного входа в систему, поскольку личность уже установлена.

Security Assertion Markup Language (Язык разметки декларации безопасности) - SAML - это стандарт XML для обмена информацией для единой регистрации между провайдером идентификации, который подтверждает идентификатор пользователя, и провайдером услуг, который использует информацию об идентификаторе пользователя.

AWS SSO

Users и Groups

Могут быть заасайнены в Policy, что представляет из себя JSON документ. В Statement полиси IAM входят:

  • "Effect": "Allow",
  • "Action": ["cloudwatch:Describe*", "cloudwatch:ListMetrics"],
  • "Resource": "*" ^^тут указывается, что юзерам или группам можно делать Нельзя указывать полный доступ на все для всех. "Не давай пользователю больше прав, чем он нуждается"

IAM Policy

IAM Policy определяет доступы для таких объектов, как Users, Groups и Roles, или ресурс в AWS.

Cостоит из:

  • "Version" - language version, always include "2012-10-17"
  • "Id" (optional)
  • "Statement" (required):
    • "Sid" - statement Id
    • "Effect" - Allow or Deny access
    • "Principal" - account/user/role to which this policy applied to: "AWS": ["arn:aws:iam::123456789012:root"]
    • "Action" - список Actions: "s3:GetObject", "s3:PutObject", что можно или нельзя в зависимости от "Effect"
    • "Resource" - список ресурсов, где будет применятся полиси: ["arn"aws"s3:::mybucket/*"]
    • "Condition" (optional) - условие, при котором полиси будет работать

IAM Policy

IAM Roles

Можем выбрать для AWS Service, AWS Account, Web Identity, SAML 2.0 federation, Custom trust policy. Роль дает право делать что-то на AWS. При создании, к IAM Role прикрепляется IAM Policy "Action": "sts:AssumeRole", "Principal": { "Service": "ec2.amazonaws.com" } - эту роль может взять на себя сервис EC2.

Inline Policy

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

Password Policy

Можно создать Password Policy (Account Settings), в котором указать условия для пароля пользователей. Есть дефолтное полиси с минимальной длиной пароля и можно создать кастомную. Также есть MFA - Multi Factor Authentication - генерирует токен, код на внешнем устройстве, которым вы владеете, для подтверждения входа. Доступные MFA в AWS:

  • Google Authenticator (phone only)
  • Authy (multi-device)
  • Universal 2nd Factor (U2F) Security Key - YubiKey
  • Hardware Key Fob MFA Device
  • Hardware Key Fob MFA Device for AWS GovCloud (US) - Government

К AWS аккаунту есть два способа иметь доступ:

  • AWS Management Console: password + MFA
  • AWS Command Line Interface: access keys
  • AWS Software Developer Kit: access keys - всякий раз, когда вы хотите вызвать API из AWS из кода вашего приложения

Access keys генерируются в AWS Management Console и можно создать для своего юзера свои access keys:

  • Access Key ID ~= username
  • Secret Access Key ~= password

AWS CLI

aws configure
aws eks update-kubconfig —region us-west-2 —name StudyCluster
aws s3 cp s3://bucket-name

https://www.bluematador.com/learn/aws-cli-cheatsheet

AWS SDK

AWS SDK

Summary

IAM Summary