[英]AWS Copilot - Attach Imported Policy to Task Role
我正在尝试在以下场景中使用 CloudFormation AddOn 模板:
因此,服务 1 将托管策略 ARN 作为导出输出写入 AddOn 堆栈,如下所示:
Outputs:
activityPublishPolicy:
Description: "Activity Publish Policy ARN"
Value: !Ref activitySnsTopicPublishPolicy
Export:
Name: !Sub ${App}-${Env}-activity-publish-policy
然后在服务 N 中,我希望导入发布策略的 ARN 并将其附加到任务角色:
Outputs:
activityPublishAccessPolicy:
Description: "The IAM::ManagedPolicy to attach to the task role."
Value: !ImportValue
'Fn::Sub': '${App}-${Env}-activity-publish-policy'
ARN 被很好地导入并写出到服务 N 的 Cloud Formation 堆栈中; 但是,任务角色没有附加托管策略。
我做了一个快速测试,看看直接将策略添加到 AddOn 堆栈是否会附加,这确实有效。
Outputs:
activityPublishAccessPolicy:
Description: "The IAM::ManagedPolicy to attach to the task role."
Value: !Ref activityPolicy
这让我相信 Copilot 仅将 ManagedPolicies 附加到在其自己的 AddOn Stack 中创建的任务角色,但这只是猜测。
我不想在每个服务中编写新策略来执行此操作,并且如果可能的话,我不想打开我们整个 VPC 的主题策略。
有没有更好的方法来做到这一点? 谢谢!
这是因为 Copilot 会扫描插件模板以确定您输出的资源类型。 插件有几个“神奇”的输出。 他们是:
为了检测这些输出,我们扫描模板以查找引用资源的逻辑 ID。 这意味着我们目前没有办法推导出Fn::ImportValue
调用结果的资源类型,因为它们不引用该插件模板中定义的逻辑 ID!
很抱歉,这给您带来了问题——似乎您可能需要将托管策略添加到您要授予此访问权限的每个服务的插件堆栈中。 不过,这是我们可能能够做的事情,如果你能帮我们解决 Github 问题,我们会很高兴,这样我们就可以优先考虑并收集对提案的反馈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.