我正在尝试从 dbeaver 连接到 AWS Athena。文档显示我可以使用 AWS SSO 来完成此操作https://dbeaver.com/docs/wiki/AWS-SSO。
我浏览了所有选项,但找不到这样的配置。我使用的是21.3.5版本。
从第一个屏幕截图来看,您似乎正在使用社区版。 CE 不支持 True SSO,但您可以使其工作。使用 AWS 的 SSO awsapps 起始页并选择您要使用的账户/角色。选择“命令行或编程访问”。选择选项 2)“将配置文件添加到您的 AWS 凭证文件”,然后单击复制文本。将此文本粘贴到您的 ~/.aws/credentials 文件中。现在复制凭据文件的第一行,但省略括号“[]”。在 DBeaver 中编辑连接。在驱动程序属性下,粘贴“AwsCredentialsProviderArguments”的值。然后,将“AwsCredentialsProviderClass”的值设置为“com.simba.athena.amazonaws.auth.profile.ProfileCredentialsProvider”。输出 S3 存储桶和区域应设置为您需要的内容。将用户和密码留空并选中“在本地保存密码”。连接现在应该可以工作了。注意:这只是一个会话令牌,几个小时后就会超时。只需重复并更新凭据文件中的内容即可更新会话令牌。希望这有帮助。
据我了解,您使用的是社区版本。但是,AWS SSO 仅在 DBeaver 商业版本中可用。
对于研究此问题的其他人,我能够使自定义 JAR 驱动程序适用于我的 AWS SSO 配置。
这里提到:https://github.com/dbeaver/dbeaver/issues/3918#issuecomment-1207615519 在此处克隆存储库:https://github.com/neitomic/simba-athena-driver-sso-support
我按照 JAR 存储库中的安装说明进行操作,效果非常好。
我使用的是 Windows PC,因此依靠我的 Windows Subsystem for Linux 安装来安装
maven
并构建 JAR。
要使用通过
aws configure sso
生成的凭证连接到 AWS Athena(其凭证存储在 ~/.aws/config 中),请执行以下操作。
添加以下驱动程序属性
"AWSCredentialsProviderClass"="com.amazonaws.custom.athena.jdbc.CustomIAMRoleAssumptionSAMLCredentialsProvider"
"AWSCredentialsProviderArguments"="<access_key_id>, <secret_access_key>, <session token>"
参考:
与联合身份连接
如果您已将访问令牌存储在 ~/.aws/credentials 中,则按照 Filippo 的说明设置以下驱动程序属性。
"AwsCredentialsProviderArguments"="<name_of_your_aws_profile>"
"AwsCredentialsProviderClass"="com.simba.athena.amazonaws.auth.profile.ProfileCredentialsProvider "
您必须使用 aws_access_key_id 作为用户名,使用 aws_secret_access_key 作为密码。