本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS 安全稽核準則
定期稽核您的安全組態,確保其符合您目前的業務需求。稽核的目的是讓您有機會移除不需要的 IAM 使用者、角色、群組和政策,確保使用者和軟體沒有過多的許可。
以下是系統性檢閱和監控 AWS 資源以取得安全最佳實務的指導方針。
提示
透過使用 AWS Security Hub CSPM 監視您 IAM 的使用狀況,因為它關係到安全最佳實務。Security Hub CSPM 使用安全控制來評估資源組態和安全標準,以協助您符合各種合規架構。如需使用 Security Hub CSPM 評估 IAM 資源的詳細資訊,請參閱 AWS Security Hub CSPM 《 使用者指南》中的 AWS Identity and Access Management 控制項。
目錄
何時執行安全性稽核
在下列情況下稽核安全組態:
-
定期。定期執行本文件中所述的步驟,做為確保安全性的最佳實務。
-
如果組織內部有所變化,例如人員離職。
-
如果您已停止使用一或多個個別 AWS 服務,以確認您已移除帳戶中使用者不再需要的許可。
-
如果您已在帳戶中新增或移除軟體,例如 Amazon EC2 執行個體上的應用程式、 OpsWorks 堆疊、 CloudFormation 範本等。
-
如果您懷疑未經授權的人員可能存取了您的帳戶。
稽核準則
當您檢閱帳戶的安全組態時,請依照以下指導方針:
-
完整徹底。查看安全組態的所有層面,包括很少使用的部分。
-
絕不假設。如果您不熟悉安全組態的某些部分 (例如,特定政策或角色存在背後的原因),請查清楚業務的需要,直到理解潛在的風險為止。
-
保持簡單。為了讓稽核 (和管理) 能更輕鬆執行,請使用 IAM 群組、IAM 角色、一致的命名機制和直截了當的政策。
檢閱 AWS 您的帳戶登入資料
當您稽核 AWS 帳戶登入資料時,請採取下列步驟:
-
如果您有未使用根帳戶的存取金鑰,可移除它們。我們強烈建議您不要將根存取金鑰用於日常使用 AWS,而是使用具有臨時登入資料的使用者,例如 AWS IAM Identity Center 的使用者。
-
如果您需要帳戶的存取金鑰,請確保在需要時更新這些金鑰。
檢閱 IAM 使用者
在稽核現有的 IAM 使用者時,請採取以下步驟:
-
從不需要存取權的群組中移除使用者。
-
檢閱使用者所在群組中所連接的政策。請參閱 檢閱 IAM 政策的要訣。
-
刪除使用者不需要,或者可能已公開的安全登入資料。例如,用於應用程式的 IAM 使用者不需要密碼 (只需要登入 AWS 網站)。同樣地,如果使用者不使用存取金鑰,也就沒有理由具備存取金鑰。如需詳細資訊,請參閱管理 IAM 使用者的密碼和管理 IAM 使用者的存取金鑰。
您可以產生並下載「憑證報告」,其中會列出帳戶中的所有 IAM 使用者,及其各種憑證的狀態,包括密碼、存取金鑰和 MFA 裝置。對於密碼和存取金鑰、憑證報告會顯示密碼或存取金鑰最近使用的日期和時間。請考慮從您的帳戶中移除最近未使用的憑證。(請勿移除您的緊急存取使用者。) 如需詳細資訊,請參閱取得 AWS 您帳戶的登入資料報告。
-
對於需要長期憑證的使用案例,請視需要更新密碼和存取金鑰。如需詳細資訊,請參閱管理 IAM 使用者的密碼和管理 IAM 使用者的存取金鑰。
-
最佳實務是要求人類使用者使用聯合身分提供者,以 AWS 使用臨時憑證存取 。如果可能,請從 IAM 使用者轉換為聯合身分主體,例如 IAM Identity Center 中的使用者。保留應用程式所需的最少 IAM 使用者數量。
檢閱 IAM 群組
在稽核 IAM 群組時,請採取以下步驟:
-
檢閱群組連接的政策。請參閱 檢閱 IAM 政策的要訣。
檢閱 IAM 角色
在稽核 IAM 角色時,請採取以下步驟:
-
檢閱角色的信任政策。確認您知道委託人是誰,而且了解為什麼該帳戶或使用者必須要能擔任該角色。
-
檢閱角色的存取政策,確認授與適當的權限給能擔任該角色的人,請參閱 檢閱 IAM 政策的要訣。
檢閱 SAML 和 OpenID Connect (OIDC) 的 IAM 提供者
如果您為了建立 SAML 或 OIDC 身分提供者 (IdP) 的信任而建立了 IAM 實體,請採取下列步驟:
-
刪除未使用的供應商。
-
下載並檢閱每個 SAML IdP 的 AWS 中繼資料文件,並確保這些文件反映您目前的業務需求。
-
從 SAML IdP 取得最新的中繼資料文件,並更新 IAM 中的提供者。
檢閱行動應用程式
如果您已建立向 提出請求的行動應用程式 AWS,請採取下列步驟:
-
確認行動應用程式不包含內嵌的存取金鑰,即使位於加密儲存裝置中也是如此。
-
使用專屬用途的 API 取得應用程式的暫時憑證。
注意
建議您使用 Amazon Cognito
檢閱 IAM 政策的要訣
政策是功能強大而且微妙的工具,因此請務必研究並了解每個政策所授予的許可。檢閱政策時,請使用以下指導方針:
-
將政策連接至群組或角色,而非個別使用者。如果個別使用者具有政策,請確認您了解該使用者需要政策的原因。
-
確保 IAM 使用者、群組和角色具有所需的許可,且沒有任何其他許可。
-
使用 IAM 政策模擬器測試連接到使用者或群組的政策。
-
請記住,使用者的許可是所有適用政策的結果:身分型政策 (在使用者、群組或角色上) 和資源型政策 (在 Amazon S3 儲存貯體、Amazon SQS 佇列、Amazon SNS 主題和 AWS KMS 金鑰等資源上)。請務必檢查套用到使用者的所有政策,並了解授予個別使用者的完整權限集。
-
請注意,讓使用者建立 IAM 使用者、群組、角色或政策,並將政策連接至主體實體,即表示對該使用者有效授予帳戶中所有資源的所有許可。可以建立政策並將它們連接到使用者、群組或角色的使用者也會授予他們本身任何許可。一般而言,只要是您不信任的使用者或角色,就不要授予能完全存取帳戶中資源的 IAM 許可。執行安全稽核時,請確認將下列 IAM 許可授予受信任身分:
-
iam:PutGroupPolicy -
iam:PutRolePolicy -
iam:PutUserPolicy -
iam:CreatePolicy -
iam:CreatePolicyVersion -
iam:AttachGroupPolicy -
iam:AttachRolePolicy -
iam:AttachUserPolicy
-
-
確認政策不會對您沒在使用的服務授予許可。例如,如果您使用 AWS 受管政策,請確保帳戶中正在使用的 AWS 受管政策適用於您實際使用的 服務。若要了解您的帳戶正在使用哪些 AWS 受管政策,請使用 IAM
GetAccountAuthorizationDetailsAPI (AWS CLI 命令:aws iam get-account-authorization-details)。 -
如果政策授予使用者許可,以啟動 Amazon EC2 執行個體,也可能會允許
iam:PassRole動作,但若是如此,應該明確列出使用者可傳遞到 Amazon EC2 執行個體的角色。 -
檢查
Action或Resource元素中包含*的任何值。如果可能,請授予使用者需要的個別動作和資源的Allow存取權。不過,以下原因說明為何在政策中適合使用*:-
此政策旨在授予管理層級的許可。
-
基於便利性考量,萬用字元會用於一組類似的動作 (例如,
Describe*),而且您放心以此方式參考的完整動作清單。 -
萬用字元會用來以指示一個類別的資源或資源路徑 (例如,
arn:aws:iam::),而且您放心在該類別或路徑中授予所有資源的存取權。account-id:users/division_abc/* -
服務動作不支援資源層級權限,而資源的唯一選擇是
*。
-
-
檢查政策名稱,確認其反映政策的功能。例如,雖然政策名稱中可能會有「唯讀」兩字,但是實際上該政策可能會授予寫入或變更的許可。
如需有關規劃安全性稽核的詳細資訊,請參閱《AWS 架構中心》中的安全性、身分與合規的最佳實務