Поиск по сайту:

Включение расширенного мониторинга для Amazon RDS


На этой странице

  1. Что мы здесь увидим?
  2. Что такое пароль?
  3. Необходимые условия для передачи роли службе
  4. Создание роли
  5. Добавление IAM-политики для пользователя IAM
  6. База данных без роли
  7. Присоединение роли к базе данных
  8. Заключение

Amazon RDS предоставляет расширенную функцию мониторинга баз данных. С помощью этой функции Amazon RDS может отслеживать и регистрировать метрики базы данных в журналах Amazon CloudWatch. Однако для включения этой функции требуется, чтобы к Amazon RDS была привязана роль, а для этого у пользователя должно быть разрешение PassRole.

Что мы здесь увидим?

В этом руководстве вы узнаете, как использовать разрешение «Пароль IAM» для включения расширенного мониторинга для Amazon RDS. Убедимся в этом на простом примере.

Что такое разрешение Passrole?

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

Пользователь должен иметь права на передачу роли службе. Это серьезный аспект безопасности, поскольку только авторизованным пользователям разрешено передавать роль службе. Кроме того, администраторы могут контролировать, какую роль пользователь может передать службе.

Предпосылки для передачи роли службе

Пользователь IAM может передать роль сервису AWS, если для него выполняются следующие три обязательных условия:

  1. Во-первых, политика для роли, которую мы собираемся создать, которая определит границы разрешений или область действия нашей роли IAM.
  2. Далее — политика доверия, связанная с этой ролью, которая в основном позволит сервису AWS (в нашем случае RDS) взять на себя роль и использовать разрешения, указанные в роли.
  3. Наконец, к пользователю IAM прикрепляется политика разрешений IAM, которая позволяет ему передавать роли, которые ему разрешено передавать.

Создание роли

В этом разделе мы создадим роль под названием «RDS-Monitoring-Role» и присоединим к ней управляемую AWS политику «AmazonRDSEnhancedMonitoringRole».

Шаг 1. Перейдите на панель инструментов IAM из учетной записи администратора или root и выберите «Роли» в разделе «Управление доступом». Нажмите на кнопку «Создать роль».

Шаг 2. В разделе «Выберите доверенный объект» вы увидите «Тип доверенного объекта», выберите здесь вариант «Сервис AWS». Теперь найдите «RDS» в разделе «варианты использования других сервисов AWS» и выберите параметр «RDS — Enhanced Monitoring».

Шаг 3. В следующем разделе «Добавить разрешения» прикрепите политику «AmazonRDSEnhancedMonitoringRole» и нажмите «Далее»:

Шаг 4. Здесь введите имя роли: «RDS-Monitoring-Role» и необязательное описание для нее. Обратите внимание, что к этой роли будет автоматически прикреплена политика доверия:

{
	"Version": "2012-10-17",
	"Statement": [
    	{
        	"Sid": "",
        	"Effect": "Allow",
        	"Principal": {
            	"Service": "monitoring.rds.amazonaws.com"
        	},
        	"Action": "sts:AssumeRole"
    	}
	]
}

Шаг 5. Наконец, нажмите кнопку «Создать роль», чтобы создать вышеуказанную роль:

Добавление политики IAM для пользователя IAM

Пока мы создали роль и прикрепили к ней политику, а затем у нас также есть доверенная политика. Это выполнило два наших предварительных условия. Теперь, переходя к третьей предпосылке, мы создадим политику для самого пользователя IAM. В этой политике мы предоставили пользователю разрешение на полный доступ к EC2 и RDS, а также разрешение на связывание вышеуказанной роли «RDS-Monitoring-Role» с нашим экземпляром RDS. Вы можете самостоятельно контролировать уровень разрешений IAM для EC2 и RDS, нас интересует только демонстрация разрешения PassRole:

Шаг 1. Снова перейдите на панель инструментов IAM из-под учетной записи администратора или root, выберите «Политики» и нажмите кнопку «Создать политику».

Шаг 2. В мастере создания политики щелкните вкладку JSON и просто вставьте следующий код JSON для этой политики:

{
	"Version": "2012-10-17",
	"Statement": [
    	{
        	"Sid": "VisualEditor0",
        	"Effect": "Allow",
        	"Action": "iam:PassRole",
        	"Resource": "arn:aws:iam::account_number:role/RDS-Monitoring-Role"
    	},
    	{
        	"Sid": "VisualEditor1",
        	"Effect": "Allow",
        	"Action": [
            	"rds:*",
            	"logs:Describe*",
            	"logs:List*",
            	"logs:StartQuery",
            	"ec2:*",
            	"iam:ListRoles",
            	"logs:StopQuery",
            	"logs:TestMetricFilter",
            	"logs:FilterLogEvents",
            	"logs:Get*",
            	"cloudwatch:GetMetricData"
        	],
        	"Resource": "*"
    	}
	]
}

В приведенном выше коде замените «IAM_User_ID» номером учетной записи или идентификатором пользователя IAM, а «RDS-Monitoring-Role» — именем роли в вашем случае. Нажмите «Далее: Теги».

Шаг 3. Укажите любые дополнительные «теги», которые вы хотите использовать, и нажмите «Далее: просмотр»:

Шаг 4. Введите имя для этой политики (в нашем случае «RDS-Monitoring-User-Policy») и, наконец, нажмите кнопку «Создать политику», чтобы создать эту политику:

Шаг 5. Прикрепите созданную выше политику к пользователю IAM:

База данных без роли

Ниже мы можем увидеть сценарий настройки базы данных без присоединения созданной выше роли (RDS-Monitoring-Role). Здесь мы видим, что получаем ошибку cloudwatch:GetMetricData.

Прикрепление роли к базе данных

Теперь мы присоединим «RDS-Monitoring-Role» к базе данных и проверим, возникает ли указанная выше ошибка CloudWatch или нет. Роль может быть связана с экземпляром RDS либо во время его создания, либо после его создания. Если вы уже создали базу данных, вам необходимо изменить экземпляр db. В любом случае, перейдите в консоль RDS и откройте блок «Дополнительная конфигурация» в настройках целевой базы данных. Найдите раздел «Мониторинг» и установите флажок «Включить расширенный мониторинг». В разделе «Роль мониторинга» выберите свою роль в раскрывающемся меню и нажмите «Продолжить»:

В следующем окне выберите действие для применения изменений и нажмите «Изменить экземпляр БД»:

На этот раз, когда вы увидите детали конфигурации базы данных, ошибка CloudWatch должна исчезнуть:

Заключение

В этом руководстве мы узнали, как использовать разрешение PassRole для включения функции расширенного мониторинга для RDS. PassRole — отличная функция для предоставления пользователю IAM минимальных привилегий для доступа к другим сервисам AWS, к которым у него нет прав доступа.