首页 > 解决方案 > 允许 AWS Redshift Cluster DB 用户组担任角色

问题描述

我如何允许 Redshift dbgroup 允许访问其他 AWS 资源,而不是允许单个 dbuser 用户?

说明

目前,我们的角色允许 Redshift Spectrum 查询 S3 存储桶中的数据。此外,我们有一个 dbuser 说 alice,alice 也是一个 dbgroup 的一部分,比如 foobar。为了允许 alice 查询数据,我们角色中定义的信任关系看起来像:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "redshift.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": [
            "arn:aws:redshift:us-XXXX-X:XXXXXXXXXXXX:dbuser:cluster-1a/alice"
          ]
        }
      }
    } 

一切正常,因为我们不断向上面显示的条件添加更多用户。例如:

"sts:ExternalId": [
                "arn:aws:redshift:us-XXXX-X:XXXXXXXXXXXX:dbuser:cluster-1a/alice",
                "arn:aws:redshift:us-XXXX-X:XXXXXXXXXXXX:dbuser:cluster-1a/bob"
              ]

由于 alice 和 bob 都是名为 foobar 的 dbgroup 的一部分,我如何允许 foobar 组承担角色而不是允许单个用户。

我想要类似的东西;

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "redshift.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": [
            "arn:aws:redshift:us-XXXX-X:XXXXXXXXXXXX:dbgroup:cluster-1a/foobar"
          ]
        }
      }
    } 

PS dbuser:集群数据库用户,dbgroup:集群数据库用户组

标签: amazon-web-servicesamazon-redshiftamazon-iamamazon-redshift-spectrum

解决方案


推荐阅读