Учебник. Интеграция единого входа Azure Active Directory с AWS Single-Account Access

В этом руководстве описано, как интегрировать AWS Single-Account Access с Azure Active Directory (Azure AD). Интеграция AWS Single-Account Access с Azure AD обеспечивает следующие возможности:

  • управление доступом к AWS Single-Account Access с помощью Azure AD;
  • автоматический вход пользователей в AWS Single-Account Access с помощью учетных записей Azure AD.
  • Централизованное управление учетными записями через портал Azure.

Используйте приведенные ниже сведения, чтобы принять решение об использовании приложений AWS Single Sign-On и AWS Single-Account Access в коллекции приложений Microsoft Azure Active Directory.

AWS Single Sign-On

Приложение AWS Single Sign-On было добавлено в коллекцию приложений Microsoft Azure Active Directory в феврале 2021 г. Оно упрощает централизованное управление доступом к нескольким учетным записям и приложениям AWS и обеспечивает вход с учетными данными Microsoft Azure Active Directory. Объедините Microsoft Azure Active Directory с AWS SSO один раз и используйте AWS SSO для централизованного управления разрешениями во всех учетных записях AWS. AWS SSO автоматически подготавливает разрешения и сохраняет их в актуальном виде при обновлении политик и назначений доступа. Конечные пользователи могут пройти проверку подлинности с учетными данными Microsoft Azure Active Directory для доступа к консоли AWS, интерфейсу командной строки и приложениям, интегрированным с AWS SSO.

AWS Single-Account Access

Приложение AWS Single-Account Access используется клиентами в течение последних нескольких лет. Оно позволяет объединить Microsoft Azure Active Directory с одной учетной записью AWS и использовать Microsoft Azure Active Directory для управления доступом к ролям AWS IAM. Администраторы AWS IAM определяют роли и политики в каждой учетной записи AWS. Для каждой учетной записи AWS администраторы Azure AD создают объединение в AWS IAM, назначают пользователям или группам учетную запись и настраивают Microsoft Azure Active Directory для отправки утверждений, которые разрешают доступ к ролям.

Функция AWS Single Sign-On AWS Single-Account Access
Условный доступ Поддерживает единую политику условного доступа для всех учетных записей AWS. Поддерживает единую политику условного доступа для всех учетных записей или пользовательские политики для каждой учетной записи
Доступ к CLI Поддерживается Поддерживается
Управление привилегированными пользователями (PIM) Еще не поддерживается Еще не поддерживается
Централизованное управление учетными записями Централизованное управление учетными записями в AWS. Централизованное управление учетными записями в Microsoft Azure Active Directory (скорее всего, потребуется корпоративное приложение Microsoft Azure Active Directory для каждой учетной записи).
Сертификат SAML Единый сертификат Отдельные сертификаты для каждого приложения или учетной записи

Архитектура AWS Single-Account Access

Diagram of Azure AD and AWS relationship

Вы можете настроить идентификаторы для нескольких экземпляров. Пример:

  • https://signin.aws.amazon.com/saml#1

  • https://signin.aws.amazon.com/saml#2

При таких значениях Azure AD удаляет значение # и отправляет правильное значение https://signin.aws.amazon.com/saml в качестве URL-адреса аудитории в токене SAML.

Мы рекомендуем именно этот подход по следующим причинам:

  • Каждое приложение предоставляет уникальный сертификат X509. Это значит, что у всех экземпляров приложения AWS разный срок действия сертификата, и ими можно управлять отдельно для каждой учетной записи AWS. Это упрощает смену сертификатов.

  • Вы можете включить в Azure AD подготовку пользователей для AWS, и тогда наша служба будет получать все роли из учетной записи AWS. Не нужно вручную добавлять или обновлять роли AWS для приложения.

  • Вы можете назначить владельца приложения для каждого приложения. Этот пользователь сможет управлять приложением непосредственно в Azure AD.

Примечание

Убедитесь, что используется только приложение из коллекции.

Предварительные требования

Чтобы приступить к работе, потребуется следующее.

Примечание

Не изменяйте роли вручную, выполняя их импорт в Microsoft Azure AD.

Описание сценария

В рамках этого руководства вы настроите и проверите единый вход Azure AD в тестовой среде.

  • AWS Single-Account Access поддерживает единый вход, инициированный поставщиком услуг и поставщиком удостоверений.

Примечание

Идентификатор этого приложения — фиксированное строковое значение, поэтому в одном клиенте можно настроить только один экземпляр.

Чтобы настроить интеграцию AWS Single-Account Access с Azure AD, необходимо добавить AWS Single-Account Access из коллекции в список управляемых приложений SaaS.

  1. Войдите на портал Azure с помощью личной учетной записи Майкрософт либо рабочей или учебной учетной записи.
  2. На портале Azure найдите и выберите Azure Active Directory.
  3. В меню обзора Azure Active Directory выберите Корпоративные приложенияВсе приложения.
  4. Чтобы добавить приложение, выберите Новое приложение.
  5. В разделе Добавление из коллекции в поле поиска введите AWS Single-Account Access.
  6. Выберите AWS Single-Account Access на панели результатов и добавьте это приложение. Подождите несколько секунд, пока приложение не будет добавлено в ваш клиент.

Настройка и проверка единого входа Azure AD для AWS Single-Account Access

Настройте и проверьте единый вход Azure AD в AWS Single-Account Access с помощью тестового пользователя B.Simon. Для обеспечения работы единого входа необходимо установить связь между пользователем Azure AD и соответствующим пользователем в AWS Single-Account Access.

Чтобы настроить и проверить единый вход Azure AD в AWS Single-Account Access, выполните следующие действия:

  1. Настройка единого входа Azure AD необходима, чтобы пользователи могли использовать эту функцию.
    1. Создание тестового пользователя Azure AD требуется для проверки работы единого входа Azure AD с помощью пользователя B.Simon.
    2. Назначение тестового пользователя Azure AD необходимо, чтобы позволить пользователю B.Simon использовать единый вход Azure AD.
  2. Настройка единого входа в AWS Single-Account Access необходима, чтобы настроить параметры единого входа на стороне приложения.
    1. Создание тестового пользователя AWS Single-Account Access требуется для того, чтобы в AWS Single-Account Access существовал пользователь B.Simon, связанный с одноименным пользователем в Azure AD.
    2. Настройка подготовки роли в AWS Single-Account Access
  3. Проверка единого входа позволяет убедиться в правильности конфигурации.

Настройка единого входа Azure AD

Выполните следующие действия, чтобы включить единый вход Azure AD на портале Azure.

  1. На портале Azure на странице интеграции с приложением AWS Single-Account Access найдите раздел Управление и выберите Единый вход.

  2. На странице Выбрать метод единого входа выберите SAML.

  3. На странице Настройка единого входа с помощью SAML щелкните значок "Изменить" (значок пера), чтобы открыть диалоговое окно Базовая конфигурация SAML и изменить параметры.

    Edit Basic SAML Configuration

  4. В разделе Базовая конфигурация SAML укажите для параметров Идентификатор (идентификатор сущности) и URL-адрес ответа одно значение по умолчанию: . Чтобы сохранить изменения в конфигурации, нажмите Сохранить.

  5. Если вы настраиваете более одного экземпляра, укажите значение идентификатора. Для второго и последующих экземпляров используйте следующий формат (включая знак # ), чтобы указать уникальное значение имени субъекта-службы.

    https://signin.aws.amazon.com/saml#2

  6. Приложение AWS ожидает проверочные утверждения SAML в определенном формате, а значит вам нужно добавить настраиваемые сопоставления атрибутов в конфигурацию атрибутов токена SAML. На следующем снимке экрана показан список атрибутов по умолчанию.

    image

  7. В дополнение к описанному выше приложение AWS ожидает несколько дополнительных атрибутов в ответе SAML, как показано ниже. Эти атрибуты также заранее заполнены, но вы можете изменить их в соответствии со своими требованиями.

    Имя Атрибут источника Пространство имен
    RoleSessionName user.userprincipalname https://aws.amazon.com/SAML/Attributes
    Роль user.assignedroles https://aws.amazon.com/SAML/Attributes
    SessionDuration "Укажите значение от 900 секунд (15 минут) до 43 200 секунд (12 часов)." https://aws.amazon.com/SAML/Attributes

    Примечание

    AWS ожидает роли для пользователей, назначенных приложению. Настройте эти роли в Azure AD, чтобы пользователям можно было назначить соответствующие роли. Сведения о том, как настроить роли в Azure AD, см. здесь.

  8. На странице Настройка единого входа с помощью SAML в диалоговом окне Сертификат SAML для подписи (шаг 3) выберите Добавить сертификат.

    Create new SAML Certificate

  9. Создайте новый сертификат SAML для подписи и выберите Создать сертификат. Введите адрес электронной почты для получения уведомлений о сертификатах.

    New SAML Certificate

  10. В разделе Сертификат SAML для подписи найдите XML метаданных федерации и выберите Скачать, чтобы скачать сертификат и сохранить его на компьютере.

    The Certificate download link

  11. Требуемые URL-адреса можно скопировать из раздела Настройка AWS Single-Account Access.

    Copy configuration URLs

Создание тестового пользователя Azure AD

В этом разделе описано, как на портале Azure создать тестового пользователя с именем B.Simon.

  1. На портале Azure найдите и выберите Azure Active Directory.
  2. В меню обзора Azure Active Directory выберите ПользователиВсе пользователи.
  3. В верхней части экрана выберите Новый пользователь.
  4. В разделе Свойства пользователя выполните следующие действия.
    1. В поле Имя введите .
    2. В поле Имя пользователя введите . Например, B.Simon@contoso.com.
    3. Установите флажок Показать пароль и запишите значение, которое отображается в поле Пароль.
    4. Нажмите кнопку Создать.

Назначение тестового пользователя Azure AD

В этом разделе описано, как включить единый вход Azure для пользователя B.Simon, предоставив этому пользователю доступ к AWS Single-Account Access.

  1. На портале Azure выберите Корпоративные приложения, а затем — Все приложения.
  2. В списке приложений выберите AWS Single-Account Access.
  3. На странице "Обзор" приложения найдите раздел Управление и выберите Пользователи и группы.
  4. Выберите Добавить пользователя, а в диалоговом окне Добавление назначения выберите Пользователи и группы.
  5. В диалоговом окне Пользователи и группы выберите B.Simon в списке пользователей, а затем в нижней части экрана нажмите кнопку Выбрать.
  6. Если пользователям необходимо назначить роль, вы можете выбрать ее из раскрывающегося списка Выберите роль. Если для этого приложения не настроена ни одна роль, будет выбрана роль "Доступ по умолчанию".
  7. В диалоговом окне Добавление назначения нажмите кнопку Назначить.

Настройка единого входа для AWS Single-Account Access

  1. В другом окне браузера войдите на корпоративный сайт AWS в качестве администратора.

  2. Щелкните AWS Home (Домашняя страница AWS).

    Screenshot of AWS company site, with AWS Home icon highlighted

  3. Выберите Identity and Access Management (Управление удостоверениями и доступом).

    Screenshot of AWS services page, with IAM highlighted

  4. Выберите Identity ProvidersCreate Provider (Поставщики удостоверений > Создать поставщик).

    Screenshot of IAM page, with Identity Providers and Create Provider highlighted

  5. На странице Configure Provider (Настройка поставщика) сделайте следующее:

    Screenshot of Configure Provider

    а. В качестве типа поставщика выберите SAML.

    b. В поле Provider Name (Имя поставщика) введите имя поставщика (например: WAAD).

    c. Чтобы отправить загруженный файл метаданных с портала Azure, нажмите кнопку Choose File (Выбрать файл).

    d. Нажмите кнопку Next Step (Следующий шаг).

  6. На странице Verify Provider Information (Проверка сведений о поставщике) щелкните Create (Создать).

    Screenshot of Verify Provider Information, with Create highlighted

  7. Выберите RolesCreate role (Роли > Создать роль).

    Screenshot of Roles page

  8. На странице Create role (Создание роли) выполните следующие действия.

    Screenshot of Create role page

    а. В разделе Select type of trusted entity (Выбор типа доверенной сущности) выберите SAML 2.0 federation (Федерация SAML 2.0).

    b. В разделе Choose a SAML 2.0 Provider (Выбор поставщика SAML 2.0) выберите созданный ранее поставщик SAML (например: WAAD).

    c. Установите флажок Allow programmatic and AWS Management Console access (Разрешить программный доступ и доступ через консоль управления AWS).

    d. По завершении выберите Next: разрешения.

  9. В диалоговом окне Attach Permissions Policies (Вложение политик разрешений) добавьте подходящую политику для вашей организации. Затем щелкните Next: Review (Далее: проверка).

    Screenshot of Attach permissions policy dialog box

  10. В диалоговом окне Review (Обзор) сделайте следующее:

    Screenshot of Review dialog box

    а. В поле Role name (Имя роли) введите имя роли.

    b. В поле Role description (Описание роли) введите описание.

    c. Щелкните Create Role (Создать роль).

    d. Создайте необходимое количество ролей и свяжите их с поставщиком удостоверений.

  11. Используйте учетные данные службы AWS, чтобы получить роли из учетной записи AWS при подготовке пользователя Azure AD. Для этого откройте главную страницу консоли AWS.

  12. Выберите Службы. В разделе Security, Identity Compliance (Безопасность, удостоверения и соответствие требованиям) выберите IAM.

    Screenshot of AWS console home, with Services and IAM highlighted

  13. В разделе IAM выберите Policies (Политики).

    Screenshot of IAM section, with Policies highlighted

  14. Щелкнув Create policy (Создать политику), создайте политику, чтобы получить роли из учетной записи AWS при подготовке пользователей Azure AD.

    Screenshot of Create role page, with Create policy highlighted

  15. Создайте собственную политику для получения всех ролей из учетных записей AWS.

    Screenshot of Create policy page, with JSON highlighted

    а. В разделе Create policy (Создание политики) щелкните вкладку JSON.

    b. Добавьте приведенный ниже код JSON в документ политики.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                "iam:ListRoles"
                ],
                "Resource": "*"
            }
        ]
    }
    

    c. Щелкните Review policy (Просмотреть политику), чтобы проверить политику.

    Screenshot of Create policy page

  16. Определите новую политику.

    Screenshot of Create policy page, with Name and Description fields highlighted

    а. В поле Name (Имя) введите AzureAD_SSOUserRole_Policy.

    b. В поле Description (Описание) введите текст: Эта политика позволит получать роли из учетных записей AWS.

    c. ВыберитеCreate policy (Создать политику).

  17. Создайте учетную запись пользователя в службе IAM AWS.

    а. В консоли IAM AWS выберите Users (Пользователи).

    Screenshot of AWS IAM console, with Users highlighted

    b. Щелкните Add user (Добавить пользователя), чтобы создать пользователя.

    Screenshot of Add user button

    c. В разделе Add user (Добавление пользователя) сделайте следующее:

    Screenshot of Add user page, with User name and Access type highlighted

    • Введите имя пользователя AzureADRoleManager.

    • Для параметра Access type (Тип доступа) выберите вариант Programmatic access (Программный доступ). Теперь пользователь сможет вызывать API и получать роли из учетной записи AWS.

    • Щелкните Next: Permissions (Далее: разрешения).

  18. Создайте политику для этого пользователя.

    Screenshot shows the Add user page where you can create a policy for the user.

    а. Щелкните Attach existing policies directly (Подключить существующие политики напрямую).

    b. Выполните поиск только что созданной политики в разделе фильтра AzureAD_SSOUserRole_Policy.

    c. Выберите политику и щелкните Next: Review (Далее: проверка).

  19. Просмотрите политику для подключенного пользователя.

    Screenshot of Add user page, with Create user highlighted

    а. Проверьте имя пользователя, тип доступа и политику, сопоставленную с пользователем.

    b. Щелкните Create user (Создать пользователя).

  20. Скачайте учетные данные пользователя.

    Screenshot shows the Add user page with a Download c s v button to get user credentials.

    а. Скопируйте значения полей Access key ID (Идентификатор ключа доступа) и Secret access key (Секретный ключ доступа) для этого пользователя.

    b. Введите эти учетные данные в раздел с параметрами подготовки пользователя Azure AD, чтобы получить роли из консоли AWS.

    c. Выберите Закрыть.

Настройка подготовки роли в AWS Single-Account Access

  1. На портале управления Azure AD откройте раздел Подготовка для AWS.

    Screenshot of AWS app, with Provisioning highlighted

  2. Введите ключ доступа и секрет в поля clientsecret и Секретный токен соответственно.

    Screenshot of Admin Credentials dialog box

    а. Введите ключ доступа пользователя AWS в поле Секрет клиента.

    b. Введите секрет пользователя AWS в поле Секретный токен.

    c. Выберите Проверить подключение.

    d. Сохраните параметры, щелкнув Сохранить.

  3. В разделе Параметры выберите для параметра Состояние подготовки значение Вкл. Затем нажмите кнопку Save (Сохранить).

    Screenshot of Settings section, with On highlighted

Примечание

Служба подготовки только импортирует роли из AWS в Azure AD. Эта служба не подготавливает пользователей и группы из Azure AD для работы в AWS.

Примечание

После подготовки учетных данных необходимо дождаться запуска цикла начальной синхронизации. Выполнение синхронизации обычно занимает около 40 минут. Состояние отображается в нижней части страницы Подготовка в разделе Текущее состояние.

Создание тестового пользователя AWS Single-Account Access

Цель этого раздела — создать пользователя с именем B.Simon в AWS Single-Account Access. Для включения единого входа в AWS Single-Account Access не требуется создавать пользователя, поэтому здесь не нужно выполнять никаких действий.

Проверка единого входа

В этом разделе описано, как проверить конфигурацию единого входа Azure AD с помощью указанных ниже способов.

Инициация поставщиком услуг:

  • Выберите Тестировать приложение на портале Azure. Вы будете перенаправлены по URL-адресу для входа в AWS Single-Account Access, где можно инициировать поток входа.

  • Перейдите по URL-адресу для входа в AWS Single-Account Access и инициируйте поток входа.

Вход, инициированный поставщиком удостоверений

  • На портале Azure выберите Тестировать приложение, и вы автоматически войдете в приложение AWS Single-Account Access, для которого настроен единый вход.

Вы можете также использовать портал "Мои приложения" корпорации Майкрософт для тестирования приложения в любом режиме. Щелкнув плитку AWS Single-Account Access на портале "Мои приложения", вы попадете на страницу входа приложения для инициации потока входа (при настройке в режиме поставщика службы) или автоматически войдете в приложение AWS Single-Account Access, для которого настроен единый вход (при настройке в режиме поставщика удостоверений). Дополнительные сведения о портале "Мои приложения" см. в этой статье.

Известные проблемы

  • Интеграцию подготовки доступа AWS Single-Account Access можно использовать только для подключения к конечным точкам общедоступного облака AWS. Интеграцию подготовки доступа AWS Single-Account нельзя использовать для получения доступа к средам AWS для государственных организаций.

  • В разделе Подготовка в подразделе Сопоставление отображается сообщение "Идет загрузка...", но никогда не отображаются сопоставления атрибутов. Единственный рабочий процесс подготовки, поддерживаемый сегодня, — импорт ролей из AWS в Azure AD для выбора во время назначения пользователя или группы. Сопоставления атрибутов для этого определены заранее и не настраиваются.

  • Раздел Подготовка поддерживает ввод только одного набора учетных данных для одного клиента AWS за раз. Все импортированные роли записываются в свойство appRolesappRoles Azure AD для клиента AWS.

    Вы можете добавить несколько клиентов AWS (представленных как servicePrincipals) в Azure AD из коллекции для подготовки. При этом существует известная проблема, когда не удается автоматически записывать все импортированные роли из нескольких servicePrincipals AWS, используемых для объединения в servicePrincipal и включения возможности единого входа.

    В качестве решения можно использовать Microsoft Graph API для извлечения всех , импортируемых во все servicePrincipal AWS с настроенной подготовкой. Потом вы сможете добавить эти строки ролей в servicePrincipal AWS с настроенным единым входом.

  • Роли должны отвечать следующим требованиям, чтобы быть доступными для импорта из AWS в Azure AD:

    • Роли должны иметь только один поставщик SAML, определенный в AWS.
    • Общая длина ARN (Имя ресурса Amazon) роли и ARN поставщика SAML не должна превышать 240 символов.

Журнал изменений

  • 12.01.2020: увеличена максимальная длина имени роли с 119 символов до 239 символов.

Дальнейшие действия

После настройки AWS Single-Account Access вы сможете применить функцию управления сеансами, которая в реальном времени защищает конфиденциальные данные вашей организации от хищения и несанкционированного доступа. Управление сеансом является расширением функции условного доступа. Узнайте, как применять управление сеансами с помощью приложений Defender для облака.