我可以通过 AWS CLI 进行 Athena 查询。这需要我先承担一个角色(我使用awsume
)。该角色需要 MFA。
现在我也想为此配置 Datagrip。但是,有两种身份验证选项:
- 用户/通行证 - 我可以输入我的 AWS 密钥 ID 和密码,但我认为如果没有 MFA 令牌也会失败(Datagrip 2021.1 中没有它的字段)。
- AWS 配置文件 - 我想出了要放入“配置文件”的内容 - 这是
source_profile
我在我的角色配置文件中的~/.aws/config
. 但是,我不知道该放什么User
。
如果我输入:
- 角色配置文件的名称
- 角色名称
- 角色的 ARN
- 我的 AWS 用户名它们都因错误而失败:
指定的数据库用户/密码组合被拒绝:[HY000][100071] [Simba]AthenaJDBC AWS Athena 客户端抛出错误。用户:arn:aws:iam::[NUMBER]:user/[MYUSERNAME] 无权执行:athena:ListDataCatalogs [执行 ID 不可用]
com.simba.athena.amazonaws.services.athena.model.AmazonAthenaException:用户:arn:aws:iam::[NUMBER]:user/[MYUSERNAME] 无权执行:athena:ListDataCatalogs(服务:AmazonAthena;状态码:400;错误代码:AccessDeniedException;请求 ID:[UUID];代理:null
即使我在User
Datagrip 对话框中将角色作为 a 输入,我的用户名也会出现同样的错误。
我最终通过在凭据中使用命名配置文件解决了这个问题。
awsume 可以选择将凭证写入文件:将
awsume -o default role-profile-name
它们写入[default]
.~/.aws/credentials
然后在 Datagrip 中,我将连接配置为
default
用作配置文件。用户名显然没有被使用,可以是任何东西(至少在我的情况下)。有关详细信息,请参阅https://aws.amazon.com/premiumsupport/knowledge-center/athena-iam-jdbc-driver/