[英]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.