lock怎麼確認真的是唯讀?

我們把授權內容用透明的方式呈現:您可以在加入前的「唯讀角色」頁面直接看到 CloudFormation 建立的角色權限內容。

1. 身份驗證 - 這個角色「只允許被誰使用」?

請檢查 JSON 中的 Trust Relationship 區段:

  • Principal: {"AWS": {"Ref": "EliteIamRole"}} → 含義:代表「只有勤英科技指定的 IAM Role(EliteIamRole)可以來扮演(Assume)這個角色」。其他人(就算知道 Role ARN)都不能直接使用。

  • Action: "sts:AssumeRole" → 含義:代表「只允許透過 AssumeRole 取得暫時性憑證」,不會建立/發放永久金鑰(Access Key)。

  • Condition: sts:ExternalId == EliteExternalID → 含義:這是 External ID 防護。防止第三方冒用、或供應鏈風險(Confused Deputy Problem)。 即使有人知道 Role ARN,也不能隨便 Assume,必須帶正確 External ID 才能通過。

  • ManagedPolicyArns: ["arn:aws:iam::aws:policy/ReadOnlyAccess"] → 含義:代表「使用 AWS 官方的 ReadOnlyAccess」。 → 目的:讀取設定與資源狀態,用於資安/合規快篩與資源盤點。 → 重點:這類權限以 List / Describe / Get 為主,不包含建立/刪除/修改資源的寫入動作。

結論:不是誰都能用,且有 External ID 保護。


2. 權限驗證 - 這個角色「能做什麼?不能做什麼?」

我們請求的權限分為兩層,您可以逐一審查:

第一層:AWS Managed Policy:ReadOnlyAccess

這代表角色以「讀取/列出/描述」為主,不包含 Start/Stop/Modify/Delete 這類寫入變更行為

triangle-exclamation

第二層:你額外加的 Inline Policy:EliteBillingReadOnly

這段更偏向「帳務/折扣/節費」的必要 API,例如:

  • ce:Get* / ce:Describe*:Cost Explorer(看成本/用量)

  • cur:DescribeReportDefinitions:CUR 報表定義

  • pricing:GetProducts:查價格(做估算)

  • savingsplans:Get* / Describe*:Savings Plans 狀態

  • support:DescribeTrustedAdvisor*:Trusted Advisor 成本/最佳化檢查(若帳號支援或有 Support 權限)

結論:權限以「成本與折扣分析」相關的讀取為主。


3. 為什麼一定要用 CloudFormation 建 Stack?

CloudFormation 的優點是「可稽核、可追溯、可撤銷」:

  • 結構固定: 權限結構固定,不靠人工手動點來點去,大幅降低配置錯誤風險。

  • 變更記錄: 任何修改都有 AWS 官方的變更記錄 (Log)。

  • 一鍵撤銷: 若未來要停止服務,只需直接刪除該 Stack,就能把授權整包移除。

Last updated