簡體   English   中英

AWS IAM 策略僅允許對具有特定標簽的資源執行角色刪除操作

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM