Хотел бы заранее сообщить, что я новичок в AWS в целом.В своем проекте я пытаюсь использовать AWS RDS MySQL с использованием аутентификации IAM (роль IAM) из приложения Java, развернутого в Tomcat на экземпляре EC2.Прежде чем попробовать это из Java, я пытаюсь сделать это из командной строки на экземпляре EC2.Я перехожу по этой ссылке, чтобы сделать это:
https://aws.amazon.com/premiumsupport/knowledge-center/users-connect-rds-iam/
До сих пор я сделал следующее (прошу прощения, если я не использую правильные терминологии):
- MySQL с использованием AWS RDS
- Включена аутентификация IAM на моем экземпляре MySQL
- Создана роль IAM для EC2
Создана встроенная политика для вышеуказанной роли IAM и предоставленоТребуется «Действие».Также включены «Ресурсы» (конечная точка моей базы данных с именем пользователя), как показано ниже:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds-db:connect"
],
"Resource": [
"arn:aws:rds-db:<my-region>:<my-account-id>:dbuser:<my-db-resource-id>/<my-db-username>"
]
}
]
}
Назначение этой роли IAM для созданного мной экземпляра EC2
Я следовал всему, что указано в ссылке вверху , и все, похоже, работает, кроме последней команды.
Как и в ссылке, которую я создал Пользователь БД , как показано ниже:
CREATE USER dev_user IDENTIFIED WITH AWSAuthenticationPlugin as 'RDS';
Последняя команда в ссылке, которая не работает:
mysql -h {db or cluser endpoint} --ssl-ca={certificate file name with complete path} --ssl-verify-server-cert -u {dbusername2} -p"{authenticationtoken}" --enable-cleartext-plugin
Каждый раз, когда я запускаю эту команду, она запрашивает пароль, а затем я получаю сообщение об ошибке.Я не знаю, как ее решить.
В приведенной выше команде mysql, если я передам свой основной идентификатор пользователя (я создал его как 'admin') и введу его пароль, яполучить ошибку, подобную этой:
[ec2-user@ip-xxx-xx-xx-16 ~]$ mysql -h <endpoint of my RDS DB instance> --ssl-ca=rds-combined-ca-bundle.pem --ssl-verify-server-cert -u admin -p 'aws rds generate-db-auth-token --hostname <endpoint of my RDS DB instance> --port 3306 --username dev_user' --enable-cleartext-plugin
Введите пароль: ОШИБКА 1059 (42000): Имя идентификатора 'aws rds generate-db-auth-token --hostname --port' слишком длинное
И если в этой же команде я предоставлю созданного выше пользователя БД (dev_user).Я получаю следующую ошибку, если в команде указать «dev_user» как пользователя и ввести пароль или нет. [В этом случае по приведенной выше ссылке не был установлен пароль, поэтому что мне делать, когда запрашивается ввод пароля?] :
[ec2-user@ip-xxx-xx-xx-16 ~]$ mysql -h <endpoint of my RDS DB instance> --ssl-ca=rds-combined-ca-bundle.pem --ssl-verify-server-cert -u dev_user -p 'aws rds generate-db-auth-token --hostname <endpoint of my RDS DB instance> --port 3306 --username dev_user' --enable-cleartext-plugin
Введите пароль: ОШИБКА1045 (28000): доступ запрещен для пользователя 'dev_user'@'xxx.xx.xx.16' (с использованием пароля: ДА)
Я получаю ту же ошибку "Доступ запрещен ...", когдаЯ ввожу "admin" в обоих местах в команде выше.
Любая помощь будет высоко ценится.
Спасибо.