🗺️ AWS 服務地圖
安全與身分・身分與存取・SAA-C03/DVA-C02/SCS-C03

IAM 政策評估與角色:一個請求為什麼被允許、又為什麼被拒絕

身分型政策寫了 Allow,請求卻還是被拒絕;以為擋住了,外部帳戶卻讀得到檔案。這一頁帶你照官方評估順序一步一步看懂答案從哪裡來,並替每種工作挑出最小權限的身分做法。

政策評估模擬器:7 步驟 身分做法分診:10 個情境 主控台・CLI・CloudFormation 建立角色

💡 先搞懂問題

虛構公司「青松物流」把月報表放在 S3 儲存貯體 qingsong-reports,訂單程式跑在 EC2 上。上線第一週就出了兩件事:工程師美玲的 IAM 使用者明明掛了「S3 讀寫」的政策,刪除舊報表時卻收到 AccessDenied;另一邊,資安同仁發現外部稽核廠商的帳戶居然讀得到報表,可是沒有人記得在哪裡開放過。兩件事的根源一樣:一個請求同時受到好幾份政策影響,大家只看了其中一份。

新手最常卡在三個地方。第一,以為「沒寫 Deny 就是允許」,其實 AWS 預設全部拒絕,只有被明確允許的才會過。第二,以為 Allow 寫得越多權限越大,忽略了組織層級的 SCP、角色上的權限界限這類「天花板」,它們不給權限,只把上限壓低。第三,以為權限只看自己身上的政策,忘了 S3 儲存貯體政策這種掛在資源上的政策,同樣能放行或擋下請求,跨帳戶時更是兩邊都要同意。

處理這件事的是 AWS Identity and Access Management(IAM)。每一次 API 呼叫都是一個請求(request),裡面有主體(principal),也就是誰在呼叫;動作(action),例如 s3:GetObject;資源(resource),例如某個物件的 ARN;以及來源 IP、時間、MFA 等條件內容(context)。AWS 收集所有適用的政策(policy),依照固定的政策評估邏輯(policy evaluation logic)算出最後是允許(Allow)還是拒絕(Deny)。

公司門禁(比喻) AWS IAM 員工識別證上的權限跟著人走 樓層管理處的門禁名單貼在門上,寫誰能進 總部規定的禁區誰的識別證都打不開 臨時訪客證櫃台核發、到點失效 身分型政策掛在使用者、群組、角色上 資源型政策例:S3 儲存貯體政策 SCP/RCPAWS Organizations 的上限 IAM 角色+STS臨時憑證,自動過期 門口刷一次卡,四種規定同時檢查;任何一條寫「禁止」,就進不去
左邊是門禁比喻,右邊是 AWS 的對應。名稱與情境都是本頁虛構的青松物流。上兩列會「給」權限,第三列只會「收」權限,第四列是一種不帶長期憑證的身分。

生活比喻:公司門禁

青松物流的辦公大樓用門禁刷卡。每位員工的識別證上登記了可以進哪些區域,這份權限跟著人走,換樓層也有效。每層樓的管理處也會在門口貼一張名單,寫明「這些人可以進來」,名單上有你,就算識別證沒登記,管理處也會放你進去。總部另外規定了幾個禁區,例如機房只准資訊部進入,就算樓層名單寫了你、識別證也登記了,總部的禁令照樣擋下。外包廠商來施工,不發正式識別證,而是由櫃台核發臨時訪客證,只開指定的門,下班時間一到自動失效。

大樓的保全只做一件事:每次有人刷卡,就把識別證、門口名單、總部規定一起拿出來比對。有人寫了「禁止」,直接擋下;都沒提到你,也不放行;至少有一份明確寫了「可以」,而且沒有任何上限規定把你排除,門才會開。

回到 AWS:剛才的識別證權限對應身分型政策(identity-based policy),掛在 IAM 使用者、群組或角色上;樓層管理處的名單對應資源型政策(resource-based policy),例如 S3 的儲存貯體政策(bucket policy)、KMS 的金鑰政策、角色的信任政策;總部禁區對應 AWS Organizations 的服務控制政策(SCP)與資源控制政策(RCP),再往下還有掛在單一使用者或角色上的權限界限(permissions boundary),以及擔任角色時傳入的工作階段政策(session policy);臨時訪客證則是 IAM 角色(role)透過 AWS Security Token Service(AWS STS)取得的臨時憑證。保全的比對規則,就是政策評估邏輯。
主體 Principalrole/app-role 的工作階段 動作 Actions3:DeleteObject 資源 Resourceqingsong-reports/2026/… 條件內容 Context來源 IP、時間、MFA… 政策評估 ・身分型政策・資源型政策・SCP、RCP・權限界限・工作階段政策 預設:隱含拒絕 Allow Deny 每一次 API 呼叫都重新評估一次,不是「登入時檢查一次就算數」
同一個主體,換一個動作或換一個資源,就是另一個請求,結果可能完全不同。評估時只看「適用於這個請求」的政策:S3 儲存貯體政策不會影響 EC2 的請求,主體不在你的組織裡,你的 SCP 也管不到它。

比喻有三個地方和 AWS 不一樣,偏偏都是最常考錯的地方。第一,大樓保全可能看你面熟就放行,AWS 沒有「通融」:沒有任何政策明確允許,就是拒絕,這叫隱含拒絕(implicit deny);任何一份適用的政策寫了 Deny,就是明確拒絕(explicit deny),壓過所有允許。第二,門禁名單在 AWS 裡要分清楚是同帳戶還是跨帳戶:同一個帳戶內,資源型政策或身分型政策任一個允許通常就夠;跨帳戶時,請求方帳戶的身分型政策和資源擁有者的資源型政策兩邊都要允許。第三,臨時訪客證在 AWS 裡不只給外人用,EC2、Lambda 上的程式也應該用角色取得臨時憑證,而不是把長期的存取金鑰寫進設定檔。

隱含拒絕 沒有任何陳述式 提到這個請求 結果:Deny 明確允許 有 Allow,沒有 Deny, 上限政策也允許 結果:Allow 明確拒絕 任何一份政策寫 Deny, 別處的 Allow 都無效 結果:Deny 三格裡只有中間那格會成功;要開放,先確定有人說「可以」; 要封鎖到底,寫一條明確的 Deny
左格是什麼都沒寫的狀態,AWS 的起點就是這裡。右格說明為什麼「禁止刪除」適合用明確拒絕實作:它不管別處給了多少 Allow 都會生效,包括將來有人不小心掛上的 AdministratorAccess。

🎮 互動實驗室一:政策評估模擬器

左邊先決定請求:誰(主體)、做什麼(動作)。資源會跟著動作自動帶出:S3 動作打在儲存貯體 qingsong-reports 的物件上,EC2 動作打在一台執行個體上。再從下拉選單組合六種政策。右邊會照 AWS 官方的評估順序一步一步檢查:明確拒絕 → RCP → SCP → 資源型政策 → 身分型政策 → 權限界限 → 工作階段政策,並標出在哪一步做出最後決定。可以先按「我猜 Allow」或「我猜 Deny」再看結果;上方 8 個情境會自動載入一組設定,適合從頭練一次。

自由組合模式:任意調整左邊的設定,按「直接評估」。

請求與政策

會「授予」權限的政策
只對 S3 動作適用;EC2 執行個體沒有資源型政策。
只設「上限」的政策
只對角色工作階段有效;IAM 使用者不適用。

評估過程

先猜猜看:
    情境完成 0 / 8
    猜對 0 / 0
    畫面說明:載入中。

    🎮 互動實驗室二:身分做法分診台

    每張卡是一個虛構公司的需求:某個人、某支程式或某個外部單位要存取 AWS。從七種做法中選出最適合的一種:IAM 使用者+存取金鑰、EC2 執行個體設定檔、Lambda 執行角色、IAM Identity Center 權限集、跨帳戶角色、OIDC 聯合角色,或是只有根使用者能做的工作。判斷的順序是先看「誰」要存取,再看「從哪裡」來,最後才想權限內容。答完會說明原因;選錯時也會說明你選的那一種適合什麼情況。

    答對 0 / 0
    連續答對 0
    選擇做法
    畫面說明:先問三個問題:「是人還是程式?」「程式跑在 AWS 裡面還是外面?」「是不是另一個 AWS 帳戶?」大部分情境問完就有答案。

    🛠️ 操作教學:替 EC2 建立 IAM 角色並檢查權限

    情境:青松物流的訂單程式跑在 EC2 上,要讀取儲存貯體 qingsong-reports 裡的報表。過去有人把存取金鑰寫在設定檔裡,這次改用 IAM 角色。左邊是簡化的主控台,照步驟選信任的實體、挑許可政策、取名、建立角色,再把角色掛到執行個體上,最後用政策模擬器確認「能讀、不能刪」。右邊的 AWS CLI 與 CloudFormation 會跟著你選的服務、政策、名稱即時更新,目前步驟對應的那幾行會用底色標出來。可以故意把角色名稱打成中文或加空白,看看驗證訊息。

    示意畫面:簡化重繪,只保留和本主題有關的欄位;實際畫面以 AWS 管理主控台為準。
    ☁ 雲端主控台🔍 搜尋服務、功能與文件全球

    範例中的客戶受管政策

    步驟 2 可以選的「qingsong-reports-read」是青松物流自己寫的客戶受管政策(customer managed policy),只允許列出這個儲存貯體與讀取裡面的物件。和 AWS 受管的 AmazonS3ReadOnlyAccess 相比,它把 Resource 縮到單一儲存貯體,是比較貼近最小權限的寫法。這份政策要先存在帳戶裡,角色才掛得上去;建立方式是 aws iam create-policy --policy-name qingsong-reports-read --policy-document file://reports-read.json。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "ListReportsBucket",
          "Effect": "Allow",
          "Action": "s3:ListBucket",
          "Resource": "arn:aws:s3:::qingsong-reports"
        },
        {
          "Sid": "ReadReportObjects",
          "Effect": "Allow",
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::qingsong-reports/*"
        }
      ]
    }

    注意兩個 Resource 的差別:s3:ListBucket 作用在儲存貯體本身,s3:GetObject 作用在物件,所以後面要加 /*。這是寫 S3 政策最常見的錯誤之一,寫反了就會出現「列得出檔名卻讀不到內容」或反過來的情況。

    自己動手時要注意

    權限:操作的人至少需要 iam:CreateRole、iam:AttachRolePolicy、iam:CreateInstanceProfile、iam:AddRoleToInstanceProfile;把角色掛到執行個體上還需要 iam:PassRole(把角色交給 AWS 服務使用的權限)與 ec2:AssociateIamInstanceProfile;用模擬器檢查要 iam:SimulatePrincipalPolicy。iam:PassRole 值得特別留意:能把任何角色交給 EC2 的人,等於能讓自己啟動的機器擁有那個角色的權限,所以實務上會把它的 Resource 限縮到特定角色。

    費用:IAM 本身不另收費,建立角色、政策、執行個體設定檔都不花錢;費用來自你接著啟動的 EC2 執行個體與 S3 的儲存與請求。2025-07-15 以後建立的新帳戶適用抵用金制的 Free Tier,選「免費方案」的帳戶不會被收費,但到期或抵用金用完會關閉帳戶;選「付費方案」的帳戶抵用金用完後就依用量計費,練習完記得把執行個體終止。

    清理:用 CLI 建立的,要照「先拆後刪」的順序:把角色從執行個體設定檔移除、刪除執行個體設定檔、卸離受管政策、刪除內嵌政策,最後才能刪除角色(角色上還掛著政策或還在設定檔裡時,刪除會失敗)。用 CloudFormation 建立的,刪除堆疊就會一併刪除它建立的角色與執行個體設定檔。

    # 用 CLI 建立的:照順序拆掉再刪除
    aws iam remove-role-from-instance-profile --instance-profile-name qingsong-order-ec2-role --role-name qingsong-order-ec2-role
    aws iam delete-instance-profile --instance-profile-name qingsong-order-ec2-role
    aws iam detach-role-policy --role-name qingsong-order-ec2-role --policy-arn arn:aws:iam::111122223333:policy/qingsong-reports-read
    aws iam delete-role-policy --role-name qingsong-order-ec2-role --policy-name uploads-write
    aws iam delete-role --role-name qingsong-order-ec2-role
    
    # 用 CloudFormation 建立的:刪除堆疊,角色與執行個體設定檔一起刪除
    aws cloudformation delete-stack --stack-name qingsong-order-role

    不要寫進範例的東西:本頁的帳戶 ID 一律用官方文件慣用的 111122223333,外部帳戶用 444455556666。真實的帳戶 ID、存取金鑰、秘密存取金鑰不要貼進程式碼儲存庫、聊天群組或教學文件;這一頁的重點正是讓程式透過角色自動取得臨時憑證,從此不需要保存任何金鑰。

    ☁️ 對照 Azure 的做法:Azure 把身分和授權拆成兩個服務:身分在 Microsoft Entra ID,資源權限用 Azure RBAC 的角色指派,在管理群組、訂用帳戶、資源群組、資源四層範圍上往下繼承、累加,限制則交給 Azure Policy 與拒絕指派。讓 VM 不存密碼就能存取其他資源,Azure 的做法是受控識別,再對它做角色指派,概念上對應這裡的 EC2 執行個體設定檔。AWS 則把身分與政策都放在 IAM,用多種「天花板」政策取交集。可以對照 Azure 站的資源階層與 RBAC 權限繼承互動教學。

    📘 原理補完

    官方評估順序:七個關卡,任一關說「不」就停

    AWS 文件把單一帳戶內的評估寫成固定順序。第一步先在所有適用政策中找明確拒絕,找到一條就結束。接著看 AWS Organizations 的 RCP 與 SCP:它們是「允許清單」,如果 RCP 或 SCP 沒有任何陳述式允許這個動作,結果就是拒絕;所以預設會掛 RCPFullAWSAccess 與 FullAWSAccess 這兩個全部允許的受管政策,拿掉之前要先換上別的允許政策。然後才輪到會授予權限的資源型政策與身分型政策,最後是權限界限與工作階段政策這兩道天花板。順序本身只影響「在哪一步做出決定」,不影響結果:任何一處明確拒絕都會贏,每一道天花板都要允許。

    ① 任何政策有明確拒絕? ② RCP 允許嗎?(資源在組織內) ③ SCP 允許嗎?(主體在組織內) ④ 資源型政策允許嗎? ⑤ 身分型政策允許嗎? ⑥ 權限界限允許嗎?(有設定時) ⑦ 工作階段政策允許嗎?(有傳入時) DenyAccessDenied 有跨帳戶未允許同帳戶:繼續否否否否否 沒有是是是是 Allow 是(或不是工作階段) 左側虛線:同帳戶內,資源型政策以 IAM 使用者 ARN 授權時,在 ④ 直接允許
    由上往下走,紅色箭頭是「拒絕」出口,綠色是「允許」出口。左側綠色虛線是同帳戶內的捷徑:資源型政策直接以 IAM 使用者 ARN 授權時,在第 ④ 步就能允許;以角色 ARN 授權時則還要經過 ⑥、⑦ 兩道天花板。第 ② ③ 步只有在主體或資源屬於某個組織的成員帳戶時才適用。

    第 ④ 步的細節最常被問到。官方的說法是:在同一個帳戶內,「只要身分型政策或資源型政策其中一個明確允許」通常就足以放行,但會依主體類型不同而有差異。以 IAM 使用者 ARN 授權的資源型政策,不受身分型政策或權限界限的隱含拒絕限制;以角色 ARN 授權的,仍受權限界限與工作階段政策的隱含拒絕限制;直接以角色工作階段 ARN 授權的,則不受這三者的隱含拒絕限制。另外有兩個例外:IAM 角色的信任政策與 KMS 金鑰政策,一定要在這份資源型政策裡明確允許主體,身分型政策單獨給不了。

    誰會給權限、誰只會收權限

    把這些政策分成兩群最好記。會授予權限的只有身分型政策與資源型政策;只設上限的有 SCP、RCP、權限界限、工作階段政策。上限政策寫了 Allow 也不會讓任何人多一點權限,它只是告訴評估引擎「這個範圍之外的一律不行」。所以最後的有效權限可以寫成:(身分型政策 ∪ 資源型政策)∩ SCP ∩ RCP ∩ 權限界限 ∩ 工作階段政策,再扣掉所有明確拒絕。

    s3:Gets3:Puts3:Deleteec2:Runec2:Term建角色 身分型政策會授予(Allow 清單) SCPFullAWSAccess+Deny 終止 權限界限只允許 s3:* 有效權限交集,扣掉 Deny 給給給給給— 上限內上限內上限內上限內Deny內 上限內上限內上限內超出超出超出 ✓✓✓✕✕✕ 示意:只有「有人給、每道上限都允許、沒有 Deny」的欄位會變成 ✓
    第一列是身分型政策授予的動作,第二、三列是兩道天花板。最右欄「建角色」(iam:CreateRole)雖然在 SCP 的上限內,但沒有任何政策授予它,仍然是隱含拒絕;ec2:RunInstances 有人授予,卻超出權限界限;ec2:TerminateInstances 被 SCP 明確拒絕。三種「做不到」的原因不同,排查時要分開看。
    政策類型掛在哪裡會授予權限嗎典型用途容易搞混的地方
    身分型政策(AWS 受管、客戶受管、內嵌)IAM 使用者、群組、角色會日常授權的主力群組不能當主體,也不能巢狀;內嵌政策隨身分一起刪除
    資源型政策(S3 儲存貯體政策、KMS 金鑰政策、角色信任政策、SQS 佇列政策…)資源本身會跨帳戶授權、資料保護的明確拒絕有 Principal 元素;跨帳戶時必須明確允許對方;KMS 金鑰政策與信任政策必須明確允許主體
    SCP組織的根、OU 或成員帳戶不會,只設上限限制 Region、禁止關閉 CloudTrail、禁止離開組織對管理帳戶無效;不限制服務連結角色;會限制成員帳戶的根使用者
    RCP(2024-11-13 推出)組織的根、OU 或成員帳戶不會,只設上限資料邊界:組織的資源只能被組織內的身分存取管的是「資源」,連外部身分也擋得到;只對支援的服務有效(上線時是 S3、STS、KMS、SQS、Secrets Manager)
    權限界限單一 IAM 使用者或角色不會,只設上限讓開發者自助建立角色又不越權和 SCP 一樣是天花板,但範圍是單一身分,不是整個帳戶
    工作階段政策擔任角色或聯合登入時以參數傳入不會,只設上限同一個角色給不同工作階段不同的權限只影響這一次工作階段,不會修改角色本身

    同帳戶與跨帳戶:要幾個人同意

    同一個帳戶內,身分型政策與資源型政策是「聯集」,任一邊允許就有機會成功,這也是為什麼實驗室情境 ⑤ 裡,美玲身上什麼政策都沒有,靠儲存貯體政策也能刪檔。跨帳戶時規則變成「兩邊都要」:請求方帳戶要用身分型政策允許自己的主體發出請求,資源擁有者帳戶的資源型政策也要允許這個外部主體,兩次評估都是 Allow 才會成功。資源不支援資源型政策的服務(例如 EC2 執行個體),跨帳戶的標準做法是在資源所在的帳戶建立角色,讓對方用 sts:AssumeRole 擔任,進到帳戶裡面以後就變成同帳戶的請求。

    同一個帳戶:任一邊允許 跨帳戶:兩邊都要允許 帳戶 111122223333 主體身分型政策 S3 儲存貯體資源型政策 身分型 Allow或 資源型 Allow 帳戶 A(請求方) 帳戶 B(資源擁有者) 主體身分型政策 S3 儲存貯體資源型政策 ① 要 Allow ② 也要 Allow + 任何一邊的 SCP、RCP、權限界限或明確拒絕,都還是能把請求擋下 帳戶 ID 為官方文件慣用的示意值
    左邊是實驗室情境 ⑤ 的狀況,右邊是情境 ⑥ 與 ⑦。跨帳戶最常見的錯誤是只改了一邊:在自己這邊加了身分型政策,卻忘了請對方在儲存貯體政策裡加上你的角色,或反過來。

    IAM 角色:信任政策決定誰能拿,權限政策決定拿了能做什麼

    角色沒有密碼也沒有長期存取金鑰。它有兩份政策:信任政策(trust policy)是一種資源型政策,Principal 寫的是誰可以擔任這個角色,例如 ec2.amazonaws.com、另一個帳戶、或某個 OIDC 身分提供者;權限政策是身分型政策,決定擔任之後能做什麼。擔任角色時由 AWS STS 發出臨時憑證,AssumeRole 的工作階段預設 1 小時,最長可到角色設定的最大工作階段時間(上限 12 小時),角色串接時最長 1 小時(查證於 2026 年 10 月)。

    EC2 不能直接「拿」角色,中間隔了一個執行個體設定檔(instance profile):它是裝角色的容器,一個設定檔只能裝一個角色。用主控台建立 EC2 用途的角色時,會自動建立同名的設定檔;用 CLI 或 API 則要自己建立並把角色放進去,這也是操作教學第 5 步的由來。執行個體上的程式透過執行個體中繼資料服務取得臨時憑證,SDK 會在到期前自動更新,所以程式碼裡完全不需要金鑰。Lambda 則直接使用執行角色,不需要設定檔。

    IAM 角色 信任政策:誰能擔任 權限政策:能做什麼 執行個體設定檔 只能裝一個角色 EC2 執行個體 訂單程式SDK 執行個體中繼資料 AWS STS臨時憑證 Amazon S3 ① 掛上角色後,執行個體中繼資料   向 STS 取得臨時憑證並在到期前自動更新 ② SDK 用臨時憑證簽署請求,存取 S3
    從左到右是設定時的關係:角色放進設定檔,設定檔掛到執行個體。下方虛線是執行時的憑證流向。整條路上沒有任何一組長期金鑰,執行個體停掉或角色被拿掉,憑證就不再更新。

    判斷步驟:先問誰、再問從哪裡來

    1. 如果是只有根使用者能做的工作(關閉帳戶、變更根使用者 Email、設定 S3 MFA delete 等),用根使用者,做完立刻鎖回去;其他任何工作都不要用它。
    2. 如果是「人」,而且是自家員工:用 IAM Identity Center,接公司既有的身分提供者,用權限集指派到各帳戶。自家 App 的終端使用者則是 Amazon Cognito 的範圍。
    3. 如果是程式,而且跑在 AWS 裡:EC2 用執行個體設定檔、Lambda 用執行角色、ECS 用任務角色,一律是角色。
    4. 如果是程式,但跑在 AWS 外面、能提供 OIDC 或 SAML 權杖(例如 CI 平台):用聯合身分換取臨時憑證。
    5. 如果是另一個 AWS 帳戶:在資源所在的帳戶建立跨帳戶角色;如果是第三方,加上外部 ID。
    6. 只有以上都不適用(只支援存取金鑰的第三方工具、緊急存取帳號)時,才建立 IAM 使用者與長期金鑰,並限縮權限、定期輪替、監控使用。
    是根使用者專屬的工作嗎? 根使用者(用完鎖回去) 是自家員工要登入嗎? Identity Center 權限集 是跑在 AWS 裡的程式嗎? 角色:執行個體設定檔、Lambda 執行角色… 是另一個 AWS 帳戶嗎? 跨帳戶角色(第三方加外部 ID) 能提供 OIDC/SAML 權杖嗎? 聯合身分角色 最後才考慮:IAM 使用者+存取金鑰限縮權限、定期輪替、監控最後使用時間 是是是是是 否否否否否
    這張圖就是實驗室二的解題順序。注意 IAM 使用者在最底下,不代表它被淘汰,而是只有前面五個問題都答「否」時才輪到它;官方列出的合理用途包括只支援長期憑證的第三方工具與緊急存取。

    容易考錯的地方

    Allow 不等於成功:題目描述「已經給了 Allow 卻仍被拒絕」時,依序檢查有沒有明確拒絕(儲存貯體政策、SCP)、SCP 是否只允許部分服務、權限界限、工作階段政策。干擾選項常是「再加一條 Allow」,但天花板政策不會因為多一條 Allow 就放寬。

    SCP 的三個例外:SCP 對管理帳戶的使用者與角色無效、不限制服務連結角色,但會限制成員帳戶的根使用者。題目若問「如何限制管理帳戶的管理員」,SCP 不是答案;若問「如何防止成員帳戶的任何人(包括根使用者)停用 CloudTrail」,SCP 正是答案。

    SCP 和 RCP 怎麼分:要限制「我們自己的身分能做什麼」用 SCP;要限制「我們的資源能被誰存取」,尤其是擋組織外部的身分,用 RCP。SCP 管不到外部帳戶的身分。

    SCP 和權限界限怎麼分:兩者都是上限,SCP 套在 OU 或帳戶上影響所有人,權限界限套在單一使用者或角色上。「讓開發者能建立角色,但不能建出比自己權限更大的角色」是權限界限的經典情境。

    跨帳戶要兩邊:只改一邊的選項幾乎都是錯的。用角色做跨帳戶時,「目標帳戶的角色信任來源帳戶」加上「來源帳戶的身分有 sts:AssumeRole 權限」才完整;第三方再加外部 ID。

    工具怎麼查:想知道某個角色能不能做某件事,用 IAM 政策模擬器或 aws iam simulate-principal-policy,它會評估身分型政策與 SCP,但不支援 RCP,結果也可能和實際環境有出入;想找出被分享到組織外的資源、或沒在用的權限,用 IAM Access Analyzer。

    以上概念在 CLF-C02(IAM、根使用者保護、IAM Identity Center)、SAA-C03(IAM 使用者、角色、政策、聯合身分與多帳戶安全策略)、DVA-C02(assume role、AWS STS)、SOA-C03(SCP、IAM Access Analyzer、IAM Identity Center)與 SCS-C03(Organizations 政策、根憑證管理、Identity Center)的考試指南中都有列出。

    ✅ 自我檢測

    以下 6 題都是原創題,選完會立即顯示對錯與解析,全部作答後會出現總分。目前得分:0 / 6