如何在 AWS Keyspaces 中添加权限?

问题描述

当我尝试从 AWS Lambda 查询 AWS Keyspaces(托管 Cassandra)时,我收到此错误

{
  "errorType": "AggregateException","errorMessage": "One or more errors occurred. (All hosts tried for query Failed (tried 11.11.111.11:9142: UnauthorizedException 'User arn:aws:iam::111111111111:user/user-for-keyspaces has no permissions.'; 11.11.111.11:9142: UnauthorizedException 'User arn:aws:iam::111111111111:user/user-for-keyspaces has no permissions.'))","stackTrace": [
    "at lambda_method(Closure,Stream,LambdaContextInternal )"
  ],"cause": {
    "errorType": "NoHostAvailableException",...

但在密钥空间的 AWS 控制台中,我没有看到任何地方可以添加权限。

user-for-keyspaces用户政策已附加此内容

{
  "Version": "2012-10-17","Statement": [
    {
      "Action": [
        "cassandra:*"
      ],"Effect": "Allow","Resource": "*"
    }
  ]
}

如何在 AWS Keyspaces 中添加权限?

解决方法

问题实际上与错误消息中的用户无关,而是我为 Keyspaces 创建的 VPC 端点。

端点需要 cassandra:* 权限才能执行查询,例如

      {
        "Statement": [
          {
            "Sid": "keyspaces-full-access","Principal": "*","Action": [
              "cassandra:*","keyspaces:*"
            ],"Effect": "Allow","Resource": "*"
          }
        ]
      }