AWS 跨账户角色允许担任角色

AWS 跨账户角色允许担任角色

我有其他正在运行服务的账户(在 EC2 等上)。

我有一个账户在运行一个指标 UI 站点,该站点是 ECS 集群的一部分,在操作时承担一个角色 ( arn:aws:sts::1111111111:assumed-role/initialassumedrole)

其他账户具有访问 CloudWatch 日志等的角色:

{
  "CloudWatchConsumerRole": {
    "Type": "AWS::IAM::Role",
    "Properties": {
      "RoleName": "CloudWatchConsumerRole",
      "AssumeRolePolicyDocument": {
        "Version": "2012-10-17",
        "Statement": ...
      },
      "Policies": [
        {
          "PolicyName": "accessCloudWatchMetricsPolicy",
          "PolicyDocument": {
            "Version": "2012-10-17",
            "Statement": [
              {
                "Sid": "AllowReadingsMetricsFromCloudWatch",
                "Effect": "Allow",
                "Action": [
                  "cloudwatch:DescribeAlarmsForMetric",
                  "cloudwatch:ListMetrics",
                  "cloudwatch:GetMetricStatistics",
                  "cloudwatch:GetMetricData"
                ],
                "Resource": "*"
              },
              {
                "Sid": "AllowReadingTagsInstancesRegionsFromEC2",
                "Effect": "Allow",
                "Action": [
                  "ec2:DescribeTags",
                  "ec2:DescribeInstances",
                  "ec2:DescribeRegions"
                ],
                "Resource": "*"
              },
              {
                "Sid": "AllowReadingResourcesForTags",
                "Effect": "Allow",
                "Action": "tag:GetResources",
                "Resource": "*"
              }
            ]
          }
        }
      ]
    }
  }
}

cloudformation 文档指出,要使主体成为假定角色,您必须指定一个会话(即您不能使用通配符。)

它还说,如果主体是一个角色(而不是假定的角色),那么您可以使用通配符来匹配角色的名称。

但是,我可以使用通配符来表示假定角色吗,即将 cloudwatchconsumerrole 中的语句设置为如下内容:

 "Statement": [
          {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
              "AWS": [
                "arn:aws:sts::1111111111:assumed-role/initialassumedrole*"
              ]
            }
          }
        ]

不幸的是,我无法轻松地测试这一点,所以真的只能依靠大家的经验了。

答案1

我认为您可以测试一下。您连接到 STS 并检索临时凭证。使用该凭证和 cli 来测试承担角色。

相关内容