[英]AWS IAM Policy to allow Role deletion actions only on resources with specific tag
我正在創建一個跨賬戶角色以分布在多個 AWS 賬戶中。 目標是允許我的 lambda 之一擔任此 CrossAccount 角色並在目標帳戶中創建 CFN 堆棧。
為了允許刪除堆棧,我需要將ec2:TerminateInstances之類的操作分配給角色。 但我不想允許對所有資源“*”執行操作。 如何只允許對具有特定標簽的資源執行此操作?
我嘗試了以下政策條件,但它不起作用。 當嘗試刪除堆棧時,我在ec2:TerminateInstances操作上遇到未經授權的錯誤。
- Effect: "Allow"
Action:
- "ec2:TerminateInstances"
Resource: "*"
Condition:
StringEquals:
aws:RequestTag/Usage: TestOnlyTag
我在正確的軌道上嗎?
請注意,此角色需要在創建堆棧之前部署到目標帳戶中。 所以這里沒有辦法指定Instance-Id。
事實證明我應該使用ResourceTag而不是RequestTag 。 根據 AWS 文檔https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html ,以下是這兩者之間的區別
資源 – 根據這些資源上的標簽控制對 AWS 服務資源的訪問。 為此,請使用 ResourceTag/key-name 條件鍵根據附加到資源的標簽確定是否允許訪問資源。
請求 – 控制可以在請求中傳遞哪些標簽。 為此,請使用 aws:RequestTag/key-name 條件鍵來指定可以在請求中傳遞哪些標簽鍵值對來標記或取消標記 AWS 資源。
以下是工作方針。
- Effect: "Allow"
Action:
- "ec2:TerminateInstances"
Resource: "*"
Condition:
StringEquals:
aws:ResourceTag/Usage: "TestOnlyTag"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.