#AWS — Quicksight(SSO) управление пользователями.


Сценарий:

  • Считайте, что наша учетная запись AWS Quicksight настроена с SSO для визуализации метрик продукта, и вы хотите управлять пользователями Quicksight.

Требования:

  • Мониторинг активности пользователей, включая последний вход в систему, использование ресурсов, популярность приборной панели и т.д..

Проблема:

  • В настоящее время в QuickSight нет функции, позволяющей напрямую видеть активность метрик ваших пользователей. С пользователей QuickSight взимается ежемесячная плата, даже если пользователь не входит в аккаунт. Вы можете ожидать полную плату за месяц, даже если пользователь будет удален до конца месяца.

Зачем?

  • Чтобы отслеживать активность пользователей и выявлять неактивных пользователей.
  • Чтобы уведомить неактивных пользователей, чтобы напомнить им об этом.
  • Удалять пользователя автоматически, если он не был активен в течение n дней.
  • Улучшить приборные панели с наименьшим количеством посещений.
  • Вывести из эксплуатации приборные панели, пользующиеся меньшей популярностью.

Решение:

  • Когда речь идет об AWS, все является вызовом API.
  • Каждое действие будет регистрироваться в Cloudtrail.
  • Мы можем использовать журналы Amazon CloudTrail для сбора информации об активности пользователей/панелей.

Доступ к учетной записи Quicksight:

  • Когда пользователь входит в AWS, если учетная запись пользователя не доступна в Quicksight, она будет создана.
  • После создания учетной записи пользователя на основе роли и предоставленных разрешений, пользователь может получить доступ к ресурсам Quicksight, таким как приборные панели, анализ, наборы данных и т.д..
  • CloudTrail регистрирует действия, выполняемые пользователем, ролью или службой AWS в Amazon QuickSight.
  • CloudTrail регистрирует следующие события для Quicksight:

Создание/обновление/удаление источника данных
Создание/обновление/удаление набора данных
Анализ создание/доступ/обновление/удаление
Создание/доступ/обновление/удаление приборной панели и т.д…

Процесс мониторинга активности пользователей Quicksight:

  • Прямой мониторинг активности пользователей

  • После того как инструмент SSO интегрирован с Quicksight, пользователи могут использовать этот инструмент для входа в Quicksight.

  • Большинство инструментов используют SAML (Security Assertion Markup Language 2.0) для объединения пользователей в AWS.

  • Единственный способ мониторинга активности пользователей из коробки — только через Quicksight Manage Console.

  • Используя AWS API/CLI/SDK, мы можем собрать необходимую информацию из Cloudtrail.

  • SSO будет использовать AWS STS (Security Token Service) для запроса временных учетных данных с ограниченными привилегиями для объединенных пользователей.

  • Федеративный пользователь будет предоставлен для выполнения действия sts:AssumeRoleWithSAML для доступа к ресурсам Quicksight.

  • Действие входа пользователя SSO будет зарегистрировано в разделе {‘Event’ : ‘AssumeRoleWithSAML’}.

  • Другие действия будут регистрироваться под {‘Event’ : [‘CreateUser’, ‘DeleteUser’, ‘UpdateUser’, ‘GetDashboard’, ‘GetAnalysis’]}.

  • Отфильтровав события по имени события, мы можем получить список всех действий из CloudTrail.

  • Из журнала CloudTrail мы можем получить данные об идентификации пользователя, такие как время события, тип, имя пользователя, провайдер идентификации и т.д….

Пример кода:

AWS CLI:

aws cloudtrail lookup-events - lookup-attributes AttributeKey=EventName,AttributeValue=GetDashboard
Вход в полноэкранный режим Выход из полноэкранного режима

AWS API:

{
   "EndTime": number,
   "EventCategory": "string",
   "LookupAttributes": [ 
      { 
         "AttributeKey": "string",
         "AttributeValue": "string"
      }
   ],
   "MaxResults": number,
   "NextToken": "string",
   "StartTime": number
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Boto SDK:

response = client.lookup_events(
    LookupAttributes=[
        {
            'AttributeKey': 'EventId'|'EventName'|'ReadOnly'|'Username'|'ResourceType'|'ResourceName'|'EventSource'|'AccessKeyId',
            'AttributeValue': 'string'
        },
    ],
    StartTime=datetime(2015, 1, 1),
    EndTime=datetime(2015, 1, 1),
    EventCategory='insight',
    MaxResults=123,
    NextToken='string'
)
Войти в полноэкранный режим Выйти из полноэкранного режима

Образец ответа:

{
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "<principal_id>: <user_name>",
        "arn": "arn:aws:sts:: <aws_account_id>:assumed-role/<IAM_role_ name>/<user_name>",
        "accountId": "<aws_account_id>",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "<principal_id>",
                …
            }
        }
    },
    "eventTime": "2022-17-13T16:55:36Z",
    "eventSource": "quicksight.amazonaws.com",
    "eventName": "GetDashboard",
    "awsRegion": "us-east-1",
    "eventID": "65ae334b-4202-4961-9ac7-d5a9d44416e2",
    "readOnly": true,
    "eventType": "AwsServiceEvent",
    "serviceEventDetails": {
        "eventRequestDetails": {
            "dashboardId": "arn:aws:quicksight:us-east-1: <aws_account_id>:dashboard/<dashboard_id>"
        },
        "eventResponseDetails": {
            "dashboardDetails": {
                "dashboardName": "Product X",
                "dashboardId": "arn:aws:quicksight:us-east-1: <aws_account_id>:dashboard/<dashboard_id>",
                "analysisIdList": [
                    "arn:aws:quicksight:us-east-1: <aws_account_id>:analysis/<analysis_id>"
            }
        }
    }
}
Войти в полноэкранный режим Выход из полноэкранного режима

Удалить пользователя:

response = client.delete_user(
    UserName='string',
    AwsAccountId='string',
    Namespace='string'
)
Войти в полноэкранный режим Выход из полноэкранного режима

Вот несколько моментов, о которых следует помнить:

  • CloudTrail хранит журналы только в течение 90 дней.
  • С пользователей QuickSight взимается ежемесячная плата, даже если пользователь не входит в учетную запись.
  • Вы можете ожидать оплаты за весь месяц, даже если пользователь будет удален до конца месяца.
  • Пользователи QuickSight оплачиваются в зависимости от версии QuickSights Edition (Standard/Enterprise).
  • Считыватели QuickSight оплачиваются за сеанс считывания, причем сеансы проводятся с шагом в 30 минут. Стоимость каждой сессии составляет $0,30 для каждого читателя, максимум $5 для каждого читателя в месяц (месяц к месяцу).
  • Если у читателя открыта приборная панель, таймер будет продолжать работать (с шагом в 30 минут), пока читатель не закроет или не свернет окно приборной панели.
  • Если читатель открыл приборную панель и закрыл ее до истечения 30 минут сессии, таймер остановится на 30 минутах и не будет продолжать работать.
  • 10 ГБ емкости SPICE предоставляются учетной записи QuickSight для каждого добавленного пользователя без дополнительной оплаты.
  • Дополнительный SPICE можно приобрести по цене $0,38 за ГБ в месяц.

Заключение:

  • После получения необходимых данных из CloudTrail мы можем хранить их в S3 и использовать для управления учетной записью Quicksight. Мы используем простую функцию Lambda, которая может автоматически удалять неактивных пользователей. Мы также можем настроить триггер для функции лямбда с помощью Cloudwath (задание Cron).

Часто задаваемые вопросы:
Вопрос: Если пользователь был добавлен и удален в любой момент месяца, плата будет начислена за те дни, когда он был активен, правильно?
Ответ:

  • Нет, если пользователь Автор/Админ удален из аккаунта, вам все равно будет выставлен счет за этого пользователя за месяц (начиная с того дня, когда он был указан как активный). Если пользователь уже был указан в аккаунте с первого дня месяца, вы можете рассчитывать на полную месячную плату. Если пользователь был добавлен в аккаунт только в середине месяца (скажем, на 10-й день), то вы получите только общую сумму, рассчитанную по оставшимся дням месяца, и вам не будет выставлен счет за 10 дней, когда пользователь не был указан как активный.

Вопрос: Когда АДМИН / АВТОР работает над ресурсом (анализ / приборная панель и т.д…..). Будет ли это оплачиваться каким-либо образом?
Ответ:

  • С пользователей взимается ежемесячная плата, независимо от их активности входа в систему или использования ресурсов на аккаунте. Это ежемесячная плата.

Вопрос: Если READER активен в течение дня, то сессии будут оплачиваться, если максимальная сумма $5 USD еще не достигнута, правильно?
Ответ:

  • С пользователя будет взиматься плата на основании времени, в течение которого открыта панель инструментов. Например,
  • Читатель открывает приборную панель на 1 час, 2 раза по 30 минут. Учитывая, что каждая сессия оплачивается по $0.30 за 30 минут, с этого конкретного читателя будет снято $0.60 ($0.30 x 2 (30мин + 30мин) = $0.60).
  • Если читатель оставляет приборную панель открытой и постоянно видимой в течение 16 часов, то плата для этого пользователя составит $5 за этот день. Однако, поскольку максимальная плата составляет $5 в месяц, вы не увидите никаких дальнейших счетов для этого конкретного читателя.

Вопрос: Если пользователь был добавлен 5-го числа, а удален 6-го, будет ли взиматься плата?
Ответ:

  • Поскольку оплата за пользователей взимается ежемесячно, вы будете платить с 5-го числа до последнего дня того же месяца, после чего оплата за удаленного пользователя не будет взиматься. Именно поэтому начисления за пользователей отображаются ежедневно на консоли биллинга.

Вопрос: Если мы приобретем подписку для всех наших ADMIN / AUTHOR (8 пользователей), сколько затрат это сэкономит?
Ответ:

  • Для корпоративной версии QuickSight, оплачивая ежемесячно, вы заплатите $192 за 8 пользователей ($24 за пользователя/месяц * 8 пользователей = $192).
  • Годовая подписка стоит $18 за пользователя в месяц. Это означает, что вы заплатите $144 в месяц за 8 пользователей, сэкономив $48 в месяц.

Ссылки:

  • Единый вход между Okta Universal Directory и AWS
  • Объединение доступа к amazon Quicksight с okta
  • Создание административной консоли в Amazon QuickSight для анализа показателей использования
  • Регистрация операций с помощью AWS CloudTrail
  • Ручное создание таблицы для журналов CloudTrail в Athena
  • Анализ безопасности, соответствия нормативным требованиям и операционной деятельности с помощью AWS CloudTrail и Amazon Athena
  • Amazon QuickSight теперь поддерживает ведение журналов аудита с помощью AWS CloudTrail
  • Отслеживание событий, не относящихся к API, с помощью журналов CloudTrail
  • Запрос журналов AWS CloudTrail — понимание журналов CloudTrail и таблиц Athena

Оцените статью
devanswers.ru
Добавить комментарий