【问题标题】:Using AWS::Region in Policy Resources在策略资源中使用 AWS::Region
【发布时间】:2020-06-15 06:07:35
【问题描述】:

我正在尝试根据当前云形成堆栈区域动态更改 s3 资源名称。 Cloudformation 堆栈更新没有任何错误。 难道我做错了什么?我希望将 {AWS::Region} 的政策解析为 us-east-1。

        Version: 2012-10-17
        Statement:
          - Sid: RestrictS3Access
            Effect: Allow
            Action:
              - 's3:GetObject'
            Resource:
              - !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${cognito-identity.amazonaws.com:sub}"
              - !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${cognito-identity.amazonaws.com:sub}/*"

我希望看到如下政策。我正在检查 aws 控制台的结果。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Action": [
            "s3:GetObject"
        ],
        "Resource": [
            "arn:aws:s3:::dnsa-us-east-1/${cognito-identity.amazonaws.com:sub}",
            "arn:aws:s3:::dnsa-us-east-1/${cognito-identity.amazonaws.com:sub}/*"
        ],
        "Effect": "Allow",
        "Sid": "RestrictS3Access"
    }

【问题讨论】:

  • 请澄清您的问题。您看到的行为是什么,与您的预期相比如何?
  • 谢谢@JasonWadsworth。我用预期的结果更新了问题。
  • @DineshNS 仍然可以在这里提供更多信息。你用那个 YAML 更新你的堆栈的结果是什么?
  • 我可以看到如下。 "Resource": [ "arn:aws:s3:::dnsa/${cognito-identity.amazonaws.com:sub}" 策略中也只有一行。如果我删除 {AWS::Region} 我可以看到两者。
  • @DineshNS 我建议使用已创建的 full JSON 策略更新您的问题。然后,我们可以帮助您确定为什么它与您的预期不同。

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

如果您希望${cognito-identity.amazonaws.com:sub} 保持不变,则需要使用${!} 对其进行转义。

    Version: 2012-10-17
    Statement:
      - Sid: RestrictS3Access
        Effect: Allow
        Action:
          - 's3:GetObject'
        Resource:
          - !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${!cognito-identity.amazonaws.com:sub}"
          - !Sub "arn:aws:s3:::dnsa-${AWS::Region}test/${!cognito-identity.amazonaws.com:sub}/*"

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 2021-10-23
    • 2018-09-28
    • 2020-11-26
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 2015-08-15
    • 2019-11-23
    相关资源
    最近更新 更多