【问题标题】:How to restrict IAM Role specific to SQS in aws cloudformation template如何在 aws cloudformation 模板中限制特定于 SQS 的 IAM 角色
【发布时间】:2020-11-04 14:44:28
【问题描述】:

我是 aws cloudformation 模板的新手,我只想将以下角色限制为 SQS 服务。 请建议我如何使用条件来实现相同的目标。

我的模板示例::

AWSTemplateFormatVersion: 2010-09-09
Description: >-
  This template creates Role  
Parameters:
  vpcname:
    Type: String
    Description: Enter vpcname
Resources:
  ErrorQueueRole:
    Type: 'AWS::IAM::Role'
    Properties:
      RoleName: !Join ["",[ErrorQueueRole.,!Ref vpcname]]
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - sqs.amazonaws.com
            Action:
                - sts:AssumeRole
            Condition:
                StringEquals:

【问题讨论】:

  • 你能解释一下你想要达到的目标吗?

标签: amazon-web-services yaml amazon-cloudformation amazon-iam amazon-sqs


【解决方案1】:

SQS 使用SQS policy不是 IAM 角色,因此您将在此处受限于它提供的功能。

SNS、Lambda 和 S3 等有限数量的服务支持通常称为resource policies 的服务。假设服务 (SQS) 支持连接到服务的功能,您需要将 Arn 添加到您尝试触发的服务中。

例如允许 SQS 调用 Lambda,将需要您修改 Lambda 函数策略,例如

{
    "Sid": "sqs",
    "Effect": "Allow",
    "Principal": {
        "Service": "sqs.amazonaws.com"
    },
    "Action": "lambda:InvokeFunction",
    "Resource": "arn:aws:lambda:us-east-2:123456789012:function:my-function"
}

【讨论】:

  • 嗨。问题是关于sqs。你能解释一下 sqs 是如何扮演一个角色的吗?我很好奇 sqs 在什么场景中扮演角色?
  • 是的,我在重新阅读问题后意识到,现在固定答案。感谢您发现@Marcin :)
  • 谢谢。现在更有意义了。现在我可以支持答案了:-)
  • 理想情况下,当您向服务主体授予资源访问权限时,您希望添加 AWS:SourceAccount 和/或 AWS:SourceARN 的条件键,否则您无法确定只有您的帐户才能访问该资源。其他帐户可能会使用 SPN 访问资源。 ``` { "Sid": "sqs", "Effect": "Allow", "Principal": { "Service": "sqs.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource ": "arn:aws:lambda:us-east-2:123456789012:function:my-function", "Condition": { "StringEquals" : [ "AWS:SourceAccount": "123456789012" ] } } ```
猜你喜欢
  • 2017-06-18
  • 2018-01-22
  • 1970-01-01
  • 2019-12-29
  • 2017-07-26
  • 2017-05-16
  • 2017-06-09
  • 2021-07-20
  • 2021-08-20
相关资源
最近更新 更多