Я пытался пройти аутентификацию для красного смещения через IAM из workbench / J и перешел по различным ссылкам: https://medium.com/tensult/aws-redshift-authentication-with-adfs-4ba423e2dc96 https://docs.amazonaws.cn/en_us/redshift/latest/mgmt/generating-user-credentials.html Я все еще невозможно подключиться.
Мой верстак выглядит так:
Driver : com.amazon.redshift.jdbc.Driver
url : jdbc:redshift:iam://<cluster-name>:<region>/<db>
username : org email id
password : org email id password
extended properties :
DbUser employeeid
idp_port 443
AutoCreate true
plugin_name com.amazon.redshift.plugin.AzureCredentialsProvider
idp_host domain-id
preferred_role arn-of-IAM-Role
К роли IAM уже прикреплена следующая политика:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"redshift:DescribeClusters",
"iam:ListRoles"
],
"Resource": "*"
},
{
"Sid": "GetClusterCredsStatement",
"Effect": "Allow",
"Action": [
"redshift:GetClusterCredentials"
],
"Resource": [
"arn:aws:redshift:*:*:dbname:<cluster>/<db>",
"arn:aws:redshift:*:*:dbuser:<cluster>/${Redshift:DbUser}",
"arn:aws:redshift:*:*:dbgroup:<cluster>/<dbgroup>"
]
},
{
"Sid": "CreateClusterUserStatement",
"Effect": "Allow",
"Action": [
"redshift:CreateClusterUser"
],
"Resource": [
"arn:aws:redshift:*:*:dbname:<cluster>/<db>",
"arn:aws:redshift:*:*:dbuser:<cluster>/${Redshift:DbUser}"
]
},
{
"Sid": "RedshiftJoinGroupStatement",
"Effect": "Allow",
"Action": [
"redshift:JoinGroup"
],
"Resource": [
"arn:aws:redshift:*:*:dbgroup:<cluster>/<dbgroup>"
]
}
]
}
Следующие правила претензий уже были добавлены:
DbUser : user.employeeid
DbGroups : user.assignedroles
Role : the IAM role with policy attached above
RoleSessionName : user.userprincipalname
Я могу предоставить более подробную информацию, но я просто следил за тем, что говорят эти ссылки, в противном случае у меня есть рабочие связи с кластером красного смещения.
Редактировать:
Я проследил журналы sqlworkbench и нашел: Caused by: java.lang.NoClassDefFoundError: com/amazonaws/auth/profile/ProfilesConfigFile
Изменить 2:
Я запустил sql workbench как:
java -Dworkbench.log.level=DEBUG -jar sqlworkbench.jar
и глядя на tail -f $Home/.sqlworkbench/workbench.log
чтобы узнать, что мне не хватает нескольких банок, например httpclient, httpcore, aws-sdk-java и некоторых других.
Теперь застрял на idp_tenant required parameter missing
Изменить 2: теперь я продвинулся до:
[JDBC Driver]SAML error: invalid_grant: AADSTS50126: Error validating credentials due to invalid username or password. Trace ID: 1c67cec4-bc2e-4140-bdc5-84e72ae50300 Correlation ID: 14be34b2-b9e2-49e5-8415-a388a8839c91 Timestamp: 2020-03-31 06:20:55Z
Я мог бы даже декомпилировать Redshift Jar, чтобы посмотреть исходный код для плагина AzureCredentialsProvider - это действительно что-то не так в конце Azure AD. Пока мои учетные данные для имени пользователя и пароля верны.