

# 身分和存取管理
<a name="a-identity-and-access-management"></a>

**Topics**
+ [SEC 2  如何管理人員和機器的身份驗證？](w2aac19b7b7b5.md)
+ [SEC 3  如何管理人員和機器的許可？](w2aac19b7b7b7.md)

# SEC 2  如何管理人員和機器的身份驗證？
<a name="w2aac19b7b7b5"></a>

 處理操作安全的 AWS 工作負載時，您需要管理兩種身分類型。了解您需要管理和授予存取權的身分類型，有助於確保正確的身分在適當的條件下存取正確的資源。

人員身分：您的管理員、開發人員、操作員和最終使用者需要身分才能存取您的 AWS 環境和應用程式。這些人是組織的成員，或與您協作的外部使用者，以及透過 Web 瀏覽器、用戶端應用程式或互動式命令列工具與 AWS 資源互動的使用者。

機器身分：您的服務應用程式、操作工具和工作負載需要身分，才能向 AWS 服務發出請求，例如讀取資料。這些身份包括在 AWS 環境中執行的機器，例如 Amazon EC2 執行個體或 AWS Lambda 函數。您也可以為需要存取權的外部人員管理機器身分。此外，您可能也有在 AWS 外部，需要存取 AWS 環境的機器。

**Topics**
+ [SEC02-BP01 使用強式登入機制](sec_identities_enforce_mechanisms.md)
+ [SEC02-BP02 使用臨時登入資料](sec_identities_unique.md)
+ [SEC02-BP03 安全地存放和使用機密](sec_identities_secrets.md)
+ [SEC02-BP04 倚賴集中化的身分提供者](sec_identities_identity_provider.md)
+ [SEC02-BP05 定期稽核和輪換登入資料](sec_identities_audit.md)
+ [SEC02-BP06 利用使用者群組和屬性](sec_identities_groups_attributes.md)

# SEC02-BP01 使用強式登入機制
<a name="sec_identities_enforce_mechanisms"></a>

 強制執行密碼長度下限，並教育使用者避免使用常見密碼或重複使用密碼。透過軟體或硬體機制強制使用 Multi-Factor Authentication (MFA)，以提供額外的驗證保護層。例如，使用 IAM Identity Center 作為身份來源時，請進行 MFA 的「內容感知」或「永遠啟用」設定，並允許使用者註冊自己的 MFA 裝置以加速採用。使用外部身份提供者 (IdP) 時，設定您的 MFA 的 IdP。 

 **若未建立此最佳實務，暴露的風險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>
+  建立 Identify and Access Management (IAM) 政策來強制執行 MFA 登入：建立一個客戶管理的 IAM 政策，禁止所有 IAM 動作，除了允許使用者在下列頁面上假設角色、變更自己的登入資料，以及管理 MFA 裝置： [My Security Credentials (我的安全登入資料)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_users-self-manage-mfa-and-creds.html#tutorial_mfa_step1)。 
+  在您的身分供應商中啟用 MFA：在您使用的身分供應商或單一登入服務中啟用 [MFA](https:/aws.amazon.com/iam/details/mfa) ，例如 [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/step1.html)。
+  設定強式密碼政策：將強式 [密碼政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html?ref=wellarchitected) 設定於 IAM 和聯合身分系統中，以協助防範暴力密碼破解攻擊。 
+  [定期輪換登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#rotate-credentials)：確保工作負載的管理員會定期變更其密碼和存取金鑰 (若使用)。 

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [AWS Secrets Manager 入門](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html) 
+  [IAM 最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 
+  [身份提供者與聯合](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) 
+  [AWS 帳戶根使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html?ref=wellarchitected) 
+  [AWS Secrets Manager 入門](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html?ref=wellarchitected) 
+   [暫時安全登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html?ref=wellarchitected) 
+  [安全合作夥伴解決方案：存取與存取控制](https://aws.amazon.com/security/partner-solutions/#access-control) 
+  [暫時安全登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 
+  [AWS 帳戶根使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) 

 **相關影片：** 
+  [大規模管理、擷取和輪換密碼的最佳實務](https://youtu.be/qoxxRlwJKZ4) 
+  [使用 IAM Identity Center 大規模管理使用者許可](https://youtu.be/aEIqeFCcK7E) 
+  [在每一層都能掌握身份](https://www.youtube.com/watch?v=vbjFjMNVEpc) 

# SEC02-BP02 使用臨時登入資料
<a name="sec_identities_unique"></a>

 需要身份才能動態取得 [臨時登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)。若是人力身份，請使用 AWS IAM Identity Center 或與 AWS Identity and Access Management (IAM) 角色聯合來存取 AWS 帳戶。若是機器身份，例如 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體或 AWS Lambda 函數，需要使用 IAM 角色，而不是具有長期存取金鑰的 IAM 使用者。

若是使用 AWS 管理主控台的人類身份，需要使用者取得臨時登入資料並聯合至 AWS。您可以使用 AWS IAM Identity Center 使用者入口網站來執行此動作。針對需要 CLI 存取權的使用者，請確定他們使用 [AWS CLI v2](http://aws.amazon.com/blogs/developer/aws-cli-v2-is-now-generally-available/)，其支援與 IAM Identity Center 的直接整合。使用者可以建立連結至 IAM Identity Center 帳戶和角色的 CLI 設定檔。CLI 會自動從 IAM Identity Center 擷取 AWS 登入資料，並代您重新整理。這樣就無需從 IAM Identity Center 主控台複製並貼上臨時 AWS 登入資料。針對 SDK，使用者應倚賴 AWS Security Token Service (AWS STS) 來擔任角色，以接收臨時登入資料。在某些情況下，臨時登入資料可能並不實用。您應注意存放存取金鑰的風險，經常輪換這些金鑰，並盡可能要求多重要素驗證 (MFA) 作為條件。使用上次存取的資訊來決定何時輪換或移除存取金鑰。

若您需要授予取用者存取 AWS 資源，請使用 [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html) 身份集區，並為其指派一組臨時、有限權限的登入資料來存取您的 AWS 資源。每個使用者的許可都是透過您建立的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) 來控制。您可以定義規則，根據使用者 ID 字符中的宣告，為每個使用者選擇角色。您可以對已驗證使用者定義預設角色。您還可以對未驗證訪客使用者定義具有限制許可的 IAM 角色。

若是機器身份，您應倚賴 IAM 角色來授予 AWS 存取權。若是 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體，您可以使用 [Amazon EC2 的角色。](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)。您可以將 IAM 角色連接至 Amazon EC2 執行個體，讓在 Amazon EC2 上執行的應用程式能夠使用 AWS 透過執行個體中繼資料服務 (IMDS) 自動建立、分發和輪換的臨時安全登入資料。AWS Well-Architected [最新版本](https://aws.amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/) 的 IMDS 可協助防範暴露臨時登入資訊的漏洞，並應實作。若要使用金鑰或密碼存取 Amazon EC2 執行個體，[AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) 是一種更安全的方式，可使用預先安裝的代理程式存取和管理執行個體，而無須使用存放的密碼。此外，AWS Lambda 等其他 AWS 服務可讓您設定 IAM 服務角色，授予使用臨時登入資料執行 AWS 動作的服務許可。在您無法使用臨時登入資料的情況下，請使用程式設計工具，例如 [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/)，來自動輸換和管理登入資料。

**定期稽核和輪換登入資料： **定期驗證 (最好是透過自動化工具) 是確認強制執行正確的控制項的必要項目。若是人類身份，您應要求使用者定期變更密碼，並使用臨時登入資料淘汰存取金鑰。當您從 IAM 使用者移至集中式身份時，可以 [產生登入資料報告 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html)來稽核您的 IAM 使用者。我們也建議您在身份供應商中強制執行 MFA 設定。您可以設定 [AWS Config 規則](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) 來監控這些設定。若是機器身份，您應倚賴使用 IAM 角色的臨時登入資料。在無法執行此操作的情況下，需要頻繁稽核和輪換存取金鑰。

**安全地存放和使用機密：** 針對與 IAM 無關且無法利用臨時登入資料的登入資料，例如資料庫登入，請使用專為處理機密管理而設計的服務，例如 [Secrets Manager](https://aws.amazon.com/secrets-manager/)。Secrets Manager 讓您能夠使用 [支援的服務](https://docs.aws.amazon.com/secretsmanager/latest/userguide/integrating.html)。為了稽核目的，存取機密的叫用會記錄在 AWS CloudTrail 中，而 IAM 許可能夠授予對這些機密的最低存取權。

 **若未建立此最佳實務，暴露的風險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>
+  實作最低權限政策：將具有最低權限的存取政策指派給 IAM 群組和角色，以反映您已定義的使用者角色或職能。 
  +  [授予最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) 
+  移除不需要的權限：透過移除不必要的許可來實作最低權限。 
  +  [透過查看使用者活動來縮小政策範圍](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) 
  +  [檢視角色存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#roles-delete_prerequisites) 
+  考慮使用許可界限：許可界限是使用受管政策的進階功能，可設定以身分為基礎的政策可授與 IAM 實體的最大許可。實體的許可界限只允許執行其以身分為基礎的政策和許可界限同時允許的動作。 
  +  [實驗室：IAM 許可邊界委派角色建立](https://wellarchitectedlabs.com/Security/300_IAM_Permission_Boundaries_Delegating_Role_Creation/README.html) 
+  考慮使用資源標籤的許可：您可以使用標籤來控制對支援標記之 AWS 資源的存取。您也可以標記 IAM 使用者和角色，以控制他們可以存取的內容。 
  +  [實驗室：EC2 的 IAM 標籤型存取控制](https://wellarchitectedlabs.com/Security/300_IAM_Tag_Based_Access_Control_for_EC2/README.html) 
  +  [屬性型存取控制 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) 

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [AWS Secrets Manager 入門](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html) 
+  [IAM 最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 
+  [身份提供者與聯合](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) 
+  [安全合作夥伴解決方案：存取與存取控制](https://aws.amazon.com/security/partner-solutions/#access-control) 
+  [暫時安全登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 
+  [AWS 帳戶根使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) 

 **相關影片：** 
+  [大規模管理、擷取和輪換密碼的最佳實務](https://youtu.be/qoxxRlwJKZ4) 
+  [使用 AWS IAM Identity Center 大規模管理使用者許可](https://youtu.be/aEIqeFCcK7E) 
+  [在每一層都能掌握身份](https://www.youtube.com/watch?v=vbjFjMNVEpc) 

# SEC02-BP03 安全地存放和使用機密
<a name="sec_identities_secrets"></a>

 對於需要第三方應用程式密碼等機密的人力和機器身分，請在專業服務中使用最新的產業標準，以自動輪換的方式存放機密，例如對於與 IAM 無關且無法利用臨時登入資料的登入資料，例如資料庫登入，請使用專為處理機密管理而設計的服務，例如 AWS Secrets Manager。Secrets Manager 讓您能夠使用支援的服務輕鬆管理、輪換和安全地存放加密機密。為了稽核目的，存取機密的叫用會記錄在 AWS CloudTrail 中，而 IAM 許可能夠授予對這些機密的最低存取權。 

 **若未建立此最佳實務，暴露的風險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>
+  使用 AWS Secrets Manager： [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) 是一項 AWS 服務，可讓您更輕鬆地管理機密。機密可以是資料庫登入資料、密碼、第三方 API 金鑰，甚至是任意文字。

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [AWS Secrets Manager 入門 ](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html)
+  [身份提供者與聯合](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) 

 **相關影片：** 
+  [大規模管理、擷取和輪換密碼的最佳實務](https://youtu.be/qoxxRlwJKZ4) 

# SEC02-BP04 倚賴集中化的身分提供者
<a name="sec_identities_identity_provider"></a>

 若是人力身份，請倚賴可讓您在集中位置管理身份的身份供應商。因為您從單一位置建立、管理和撤銷存取權，因此這可讓您更輕鬆地管理多個應用程式和服務之間的存取。例如，若有人離開您的組織，您可從一個位置撤銷所有應用程式和服務 (包括 AWS) 的存取權。這可減少多個登入資料的需求，並提供與現有人力資源 (HR) 程序整合的機會。 

針對與個別 AWS 帳戶的聯合，您可以透過 SAML 2.0 供應商使用 AWS 的集中化身份，並搭配 AWS Identity and Access Management。您可以使用與下列通訊協定相容的任何供應商，無論是由您在 AWS 中、AWS 外部託管，還是由 AWS Partner 提供： [SAML 2.0](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html) 通訊協定。您可以使用 AWS 帳戶與所選供應商之間的聯合，透過使用 SAML 聲明取得臨時安全登入資料，授予使用者或應用程式叫用 AWS API 操作的存取權。此外還支援 Web 型單一登入，讓使用者能夠從您的登入網站登入 AWS 管理主控台。

針對與 AWS Organizations 中多個帳戶的聯合，您可以在 [AWS IAM Identity Center (IAM Identity Center)](http://aws.amazon.com/single-sign-on/)中設定您的身份來源，並指定使用者和群組的存放位置。設定好之後，您的身份供應商即真實來源，而資訊可以使用跨網域身份管理系統 (SCIM) v2.0 通訊協定來 [同步](https://docs.aws.amazon.com/singlesignon/latest/userguide/provision-automatically.html) 。然後，您可以查詢使用者或群組，並授予他們對 AWS 帳戶、雲端應用程式或兩者的IAM Identity Center存取權。

IAM Identity Center 與 AWS Organizations 整合，讓您只需設定身份供應商一次，然後即可將 [存取權授予組織中管理的現有及新帳戶](https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html) 。IAM Identity Center 為您提供預設存放區，這可用於管理使用者和群組。若您選擇使用 IAM Identity Center 存放區，則建立使用者和群組，並將其存取層級指派給您的 AWS 帳戶和應用程式，並記住最低權限的最佳實務。或者，您可以選擇使用 SAML 2.0 [連線至您的外部身份供應商 ](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-idp.html)， [或使用](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-ad.html) AWS Directory Service 連線至您的 Microsoft AD 目錄。設定好之後，您可以透過中央身分提供者進行身分驗證，登入 AWS 管理主控台 或 AWS 行動應用程式。

若要管理工作負載的最終使用者或取用者，例如行動應用程式，您可以使用 [Amazon Cognito](http://aws.amazon.com/cognito/)。它可為您的 Web 和行動應用程式提供身份驗證、授權和使用者管理。您的使用者可以憑使用者名稱和密碼直接登入，或透過第三方 (例如 Amazon、Apple、Facebook 或 Google) 登入。

 **若未建立此最佳實務，暴露的風險等級為：** 高 

## 實作指引
<a name="implementation-guidance"></a>
+  集中管理存取：建立 Identity and Access Management (IAM) 身分提供者實體，以在您的 AWS 帳戶 與您的身分提供者 (IdP) 之間建立信任的關係。IAM 支援與 OpenID Connect (OIDC) 或 SAML 2.0 (安全聲明標記語言 2.0) 相容的 IdP。 
  +  [身份提供者與聯合](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) 
+  集中應用程式存取：考慮使用 Amazon Cognito 集中存取應用程式。它可讓您快速輕鬆地將使用者註冊、登入和存取控制新增到 Web 和行動應用程式。 [Amazon Cognito](https://aws.amazon.com/cognito/) 可擴展到數百萬使用者，並支援透過 SAML 2.0 使用社交身分提供者 (例如 Facebook、Google 和 Amazon) 以及企業身分提供者進行登入。 
+  移除舊的 IAM 使用者與群組：在您開始使用身分提供者 (IdP) 後，請移除不再需要的 IAM 使用者與群組。 
  +  [尋找未使用的登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html) 
  +  [刪除 IAM 群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_delete.html) 

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [IAM 最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 
+  [安全合作夥伴解決方案：存取與存取控制](https://aws.amazon.com/security/partner-solutions/#access-control) 
+  [暫時安全登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 
+  [AWS 帳戶根使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) 

 **相關影片：** 
+  [大規模管理、擷取和輪換密碼的最佳實務](https://youtu.be/qoxxRlwJKZ4) 
+  [使用 AWS IAM Identity Center 大規模管理使用者許可](https://youtu.be/aEIqeFCcK7E) 
+  [在每一層都能掌握身份](https://www.youtube.com/watch?v=vbjFjMNVEpc) 

# SEC02-BP05 定期稽核和輪換登入資料
<a name="sec_identities_audit"></a>

 當您無法倚賴臨時登入資料且需要長期登入資料時，請稽核登入資料以確保定義的控制 (例如 多重要素驗證 (MFA)) 會定期強制執行、輪換，且具有適當的存取層級。定期驗證 (最好是透過自動化工具) 是確認強制執行正確的控制項的必要項目。若是人類身份，您應要求使用者定期變更密碼，並使用臨時登入資料淘汰存取金鑰。當您從 AWS Identity and Access Management (IAM) 使用者移至集中式身份時，可以 [產生登入資料報告 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html)來稽核您的 IAM 使用者。我們也建議您在身份供應商中強制執行 MFA 設定。您可以設定 [AWS Config 規則](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) 來監控這些設定。若是機器身份，您應倚賴使用 IAM 角色的臨時登入資料。在無法執行此操作的情況下，需要頻繁稽核和輪換存取金鑰。

 **若未建立此最佳實務，暴露的風險等級為：** 中 

## 實作指引
<a name="implementation-guidance"></a>
+  定期稽核登入資料：使用登入資料報告和 Identify and Access Management (IAM) Access Analyzer，來稽核 IAM 登入資料和許可。 
  +  [IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) 
  +  [獲取登入資料報告](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html) 
  +  [實驗室：自動化 IAM 使用者清除](https://wellarchitectedlabs.com/Security/200_Automated_IAM_User_Cleanup/README.html?ref=wellarchitected-tool) 
+  使用存取層級來檢閱 IAM 許可：為了改善 AWS 帳戶的安全性，請定期檢閱和監控每個 IAM 政策。請確定您的政策授予僅執行必要動作所需的最低權限。 
  +  [使用存取層級來檢閱 IAM 許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#use-access-levels-to-review-permissions) 
+  考慮自動化 IAM 資源建立和更新：AWS CloudFormation 可以用來自動化 IAM 資源 (包括角色和政策) 的部署，以減少人為錯誤，因為範本可以進行驗證和進行版本控制。 
  +  [實驗室：IAM 群組和角色的自動部署](https://wellarchitectedlabs.com/Security/200_Automated_Deployment_of_IAM_Groups_and_Roles/README.html) 

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [AWS Secrets Manager 入門](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html) 
+  [IAM 最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 
+  [身份提供者與聯合](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) 
+  [安全合作夥伴解決方案：存取與存取控制](https://aws.amazon.com/security/partner-solutions/#access-control) 
+  [暫時安全登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 

 **相關影片：** 
+  [大規模管理、擷取和輪換密碼的最佳實務](https://youtu.be/qoxxRlwJKZ4) 
+  [使用 AWS IAM Identity Center 大規模管理使用者許可](https://youtu.be/aEIqeFCcK7E) 
+  [在每一層都能掌握身份](https://www.youtube.com/watch?v=vbjFjMNVEpc) 

# SEC02-BP06 利用使用者群組和屬性
<a name="sec_identities_groups_attributes"></a>

 隨著您管理的使用者人數增加，您需要確定整理使用者的方式，以便大規模管理使用者。將具有共同安全需求的使用者放在身分供應商定義的群組中，並設置機制，以確保可用於存取控制的使用者屬性 (例如，部門或位置) 正確並已更新。使用這些群組和屬性 (而非個別使用者) 來控制存取權。這可讓您透過 [許可集合](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsets.html)一次變更使用者的群組成員資格或屬性集中管理存取權，而不是在使用者存取需求變更時更新許多個別政策。您可以使用 AWS IAM Identity Center (IAM Identity Center) 來管理使用者群組和屬性。IAM Identity Center 支援最常用的屬性，無論是在使用者建立期間手動輸入，還是使用同步引擎自動佈建，例如 System for Cross-Domain Identity Management (SCIM) 規格中所定義。 

將具有共同安全需求的使用者放在身分供應商定義的群組中，並設置機制，以確保可用於存取控制的使用者屬性 (例如，部門或位置) 正確並已更新。使用這些群組和屬性 (而非個別使用者) 來控制存取情形。這可讓您透過一次變更使用者的群組成員資格或屬性集中管理存取權，而不是在使用者存取需求變更時更新許多個別政策。

 **若未建立此最佳實務，暴露的風險等級為：** 低 

## 實作指引
<a name="implementation-guidance"></a>
+  如果您是使用 AWS IAM Identity Center (IAM Identity Center)，請設定群組：IAM Identity Center 可讓您設定使用者群組，並將所需的許可層級指派給群組。 
  +  [AWS 單一登入 - 管理身分](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-sso.html) 
+  了解屬性型存取控制 (ABAC)：ABAC 是一種授權策略，可根據屬性定義許可。 
  +  [什麼是 ABAC for AWS？](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) 
  +  [實驗室：EC2 的 IAM 標籤型存取控制](https://www.wellarchitectedlabs.com/Security/300_IAM_Tag_Based_Access_Control_for_EC2/README.html) 

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [AWS Secrets Manager 入門](https://docs.aws.amazon.com/secretsmanager/latest/userguide/getting-started.html) 
+  [IAM 最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 
+  [身份提供者與聯合](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html) 
+  [AWS 帳戶根使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html) 

 **相關影片：** 
+  [大規模管理、擷取和輪換密碼的最佳實務](https://youtu.be/qoxxRlwJKZ4) 
+  [使用 AWS IAM Identity Center 大規模管理使用者許可](https://youtu.be/aEIqeFCcK7E) 
+  [在每一層都能掌握身份](https://www.youtube.com/watch?v=vbjFjMNVEpc) 

 **相關範例：** 
+  [實驗室：EC2 的 IAM 標籤型存取控制](https://www.wellarchitectedlabs.com/Security/300_IAM_Tag_Based_Access_Control_for_EC2/README.html) 

# SEC 3  如何管理人員和機器的許可？
<a name="w2aac19b7b7b7"></a>

 管理許可，以控制對需要存取 AWS 和工作負載的人員和機器身分的存取。許可控制誰可以在何種條件下存取哪些內容。

**Topics**
+ [SEC03-BP01 定義存取需求](sec_permissions_define.md)
+ [SEC03-BP02 授予最低權限存取權](sec_permissions_least_privileges.md)
+ [SEC03-BP03 建立緊急存取程序](sec_permissions_emergency_process.md)
+ [SEC03-BP04 持續減少許可](sec_permissions_continuous_reduction.md)
+ [SEC03-BP05 為您的組織定義許可防護機制](sec_permissions_define_guardrails.md)
+ [SEC03-BP06 根據生命週期管理存取](sec_permissions_lifecycle.md)
+ [SEC03-BP07 分析公有和跨帳戶存取權](sec_permissions_analyze_cross_account.md)
+ [SEC03-BP08 安全地共用資源](sec_permissions_share_securely.md)

# SEC03-BP01 定義存取需求
<a name="sec_permissions_define"></a>

工作負載的每個組成部分或資源都需要由管理員、最終使用者或其他組成部分存取。您需要清楚定義哪些人或哪些項目應該可以存取每個組成部分，然後選擇適當的身分類型與身分驗證和授權方法。

 **常見的反模式：** 
+ 將機密硬式編碼或存放在應用程式中。
+ 為每名使用者授予自訂許可。
+ 使用長期憑證。

 **若未建立此最佳實務，暴露的風險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

 工作負載的每個組成部分或資源都需要由管理員、最終使用者或其他組成部分存取。您需要清楚定義哪些人或哪些項目應該可以存取每個組成部分，然後選擇適當的身分類型與身分驗證和授權方法。

應提供組織中對 AWS 帳戶 的定期存取 (使用 [聯合存取](https://aws.amazon.com/identity/federation/) 或集中式的身分提供者)。 您應集中進行身分管理，並確保有既定的實務，可將 AWS 存取整合至員工的存取生命週期。例如，當員工改為擔任具有不同存取層級的任務角色時，其群組成員資格也應變更，以反映新的存取需求。

 為非人類身分定義存取需求時，請判斷哪些應用程式和組成部分需要存取權，以及如何授予許可。使用透過最低權限存取模型建置的 IAM 角色是建議的方法。[AWS 受管政策](https://docs.aws.amazon.com/singlesignon/latest/userguide/security-iam-awsmanpol.html) 提供預先定義的 IAM 政策，其中涵蓋最常見的使用案例。

AWS 服務，例如 [AWS Secrets Manager](https://aws.amazon.com/blogs/security/identify-arrange-manage-secrets-easily-using-enhanced-search-in-aws-secrets-manager/) 和 [AWS Systems Manager 參數存放區](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html)，可以協助在無法使用 IAM 角色的情況下，將機密從應用程式或工作負載中安全地分離。在 Secrets Manager 中，您可以為憑證建立自動輪換。您可以使用 Systems Manager 來參考指令碼、命令、SSM 文件、組態和自動化工作流程中的參數，方法是使用您在建立參數時指定的唯一名稱。

您可以使用 AWS Identity and Access Management Roles Anywhere 來取得 [IAM 中的臨時安全憑證，](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) 該憑證適用於在 AWS 以外執行的工作負載。您的工作負載可以使用相同的 [IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) 和 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) ，您可以將這些政策和角色與 AWS 應用程式搭配使用，來存取 AWS 資源。

 可能的話，請選擇短期暫時憑證，而不是長期靜態憑證。對於您希望 IAM 使用者具備程式設計存取權和長期憑證的情況，請使用 [存取金鑰前次使用的資訊](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) 來輪換和移除存取金鑰。 

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [屬性型存取控制 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) 
+  [AWS IAM Identity Center](https://aws.amazon.com/iam/identity-center/) 
+  [IAM Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html) 
+  [IAM Identity Center 的 AWS 受管政策](https://docs.aws.amazon.com/singlesignon/latest/userguide/security-iam-awsmanpol.html) 
+  [AWSIAM 政策條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 
+  [IAM 使用案例](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UseCases.html) 
+  [移除不需要的憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#remove-credentials) 
+  [制定政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) 
+  [如何根據 AWS 帳戶、OU 或組織控制對 AWS 資源的存取權](https://aws.amazon.com/blogs/security/how-to-control-access-to-aws-resources-based-on-aws-account-ou-or-organization/) 
+  [使用 AWS Secrets Manager 中增強的搜尋功能來輕鬆識別、安排和管理機密](https://aws.amazon.com/blogs/security/identify-arrange-manage-secrets-easily-using-enhanced-search-in-aws-secrets-manager/) 

 **相關影片：** 
+  [在 60 分鐘內精通 IAM 政策](https://youtu.be/YQsK4MtsELU) 
+  [責任區隔、最低權限、委派和 CI/CD](https://youtu.be/3H0i7VyTu70) 
+  [簡化身分和存取管理，以促進創新](https://www.youtube.com/watch?v=3qK0b1UkaE8) 

# SEC03-BP02 授予最低權限存取權
<a name="sec_permissions_least_privileges"></a>

透過允許在特定情況下對特定 AWS 資源執行特定動作，僅授予身分所需的存取權。倚賴群組和身分屬性，大規模動態設定許可，而不是定義個別使用者的許可。例如，您可以允許一組開發人員的存取權，以只管理其專案的資源。如此一來，將開發人員從群組中移除時，在使用該群組來進行存取控制的任何地方都會撤銷該開發人員的存取權，完全不需要變更存取政策。

 **常見的反模式：** 
+ 預設授予使用者管理員許可。
+ 使用根帳戶來處理每日活動。

 **若未建立此最佳實務，暴露的風險等級：** 高 

## 實作指引
<a name="implementation-guidance"></a>

建立 [最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) 原則可確保在平衡可用性和效率的同時，僅允許身份執行完成特定任務所需的最少量功能。依此原則操作會限制非預期存取，並協助確保您可以稽核誰有權存取哪些資源。在 AWS 中，除了根使用者以外，身分依預設沒有任何許可。根使用者的憑證應受到嚴格的控制，使用範圍僅限於幾個 [特定任務](https://docs.aws.amazon.com/general/latest/gr/aws_tasks-that-require-root.html)。

您可以使用政策明確授予與 IAM 或資源實體連接的許可，例如聯合身分或機器或資源 (例如 S3 儲存貯體) 使用的 IAM 角色。建立和連接政策時，您可以指定必須為 true 的服務動作、資源和條件，以便 AWS 允許存取權。AWS 支援各種條件，以協助您縮減存取權範圍。例如，使用 `PrincipalOrgID` [條件金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)，AWS Organizations 的識別符經過驗證，以便在 AWS 組織內授予存取權。

此外，您還可以控制 AWS 服務代您發出的請求，例如 AWS CloudFormation 使用 `CalledVia` 條件金鑰建立 AWS Lambda 函數。您應將不同政策類型分層，以便有效地將整體許可限制在某個帳戶中。例如，您可以允許應用程式團隊建立其專屬的 IAM 政策，但使用 [許可界限](https://aws.amazon.com/blogs/security/delegate-permission-management-to-developers-using-iam-permissions-boundaries/) 來限制他們可以授予的許可上限。

有幾個 AWS 功能，可協助您擴展許可管理並遵循最低權限原則。[屬性型存取控制](https://aws.amazon.com/blogs/security/delegate-permission-management-to-developers-using-iam-permissions-boundaries/) 可讓您根據資源的 *[標籤](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)* 來限制許可，以便根據套用至資源和呼叫 IAM 主體的標籤來做出授權決定。此可讓您結合標記和許可政策，以達成更精細的資源存取，而不需自訂許多政策。

另一個加快最低權限政策建立的方式，是在活動執行後，將 CloudTrail 許可作為政策基礎。[IAM Access Analyzer 可根據活動自動產生 IAM 政策](https://aws.amazon.com/blogs/security/delegate-permission-management-to-developers-using-iam-permissions-boundaries/)。您可以在組織或個別帳戶層級中使用 IAM Access Advisor， [來追蹤特定政策的最新存取資訊](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html)。

建立審查這些詳細資料和移除不需要許可的規律。您應在 AWS 組織中建立許可防護機制，來控制任何成員帳戶中的許可上限。例如 [AWS Control Tower 之類的服務有規範性的受管預防性控制項](https://docs.aws.amazon.com/controltower/latest/userguide/guardrails.html) 並可讓您定義自己的控制項。

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [IAM 實體的許可界限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) 
+  [寫入最低權限 IAM 政策的技巧](https://aws.amazon.com/blogs/security/techniques-for-writing-least-privilege-iam-policies/) 
+  [IAM Access Analyzer 透過根據存取活動產生 IAM 政策，來輕鬆實作最低權限許可](https://aws.amazon.com/blogs/security/iam-access-analyzer-makes-it-easier-to-implement-least-privilege-permissions-by-generating-iam-policies-based-on-access-activity/) 
+  [使用上次存取的資訊以精簡許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html) 
+  [IAM 政策類型以及何時使用這些政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) 
+  [使用 IAM 政策模擬器測試 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html) 
+  [AWS Control Tower 中的防護機制](https://docs.aws.amazon.com/controltower/latest/userguide/guardrails.html) 
+  [零信任架構：AWS 觀點](https://aws.amazon.com/blogs/security/zero-trust-architectures-an-aws-perspective/) 
+  [如何使用 CloudFormation StackSets 實作最低權限原則](https://aws.amazon.com/blogs/security/how-to-implement-the-principle-of-least-privilege-with-cloudformation-stacksets/) 

 **相關影片：** 
+  [下一代許可管理](https://www.youtube.com/watch?v=8vsD_aTtuTo) 
+  [零信任：AWS 觀點](https://www.youtube.com/watch?v=1p5G1-4s1r0) 
+  [我如何使用許可界限，來限制 IAM 使用者和角色避免權限升級？](https://www.youtube.com/watch?v=omwq3r7poek) 

 **相關範例：** 
+  [實驗室：IAM 許可界限委派角色建立](https://wellarchitectedlabs.com/Security/300_IAM_Permission_Boundaries_Delegating_Role_Creation/README.html) 

# SEC03-BP03 建立緊急存取程序
<a name="sec_permissions_emergency_process"></a>

 在極少數的狀況下，自動化程序或管道發生問題時，允許緊急存取工作負載的程序。這可協助您倚賴最低權限的存取權，但確保使用者可在需要時取得適當的存取層級。例如，建立一個程序，讓管理員驗證和核准使用者的請求，例如，用於存取的緊急 AWS 跨帳戶角色，或管理員需遵循以驗證和核准緊急請求的特定程序。 

 **常見的反模式：** 
+ 未有可用的緊急程序，而無法從您現有身分組態的中斷中復原。
+ 授予長期提升的許可，以供疑難排解或復原之用。

 **若未建立此最佳實務，暴露的風險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 緊急存取的建立可能有數種形式，您應做好相關的準備。第一個就是主要身分提供者的失敗。在此情況下，您應倚賴具有必要復原許可的第二種存取方法。此方法可能是備份身分提供者或 IAM 使用者。此第二個方法應 [受到嚴格的控制、監控，並在](https://aws.amazon.com/blogs/mt/monitor-and-notify-on-aws-account-root-user-activity/) 使用時發出通知。緊急存取身分應來自專門用於此用途的帳戶，並僅具備相關許可，以擔任專為復原而設計的角色。

 您也應為需要臨時提升管理存取權的緊急存取情況做好準備。常見的情境是將突變的許可限制在用於部署變更的自動化程序中。在此程序發生問題時，使用者可能需要請求提升許可來還原功能。在此情況下，建立以下流程，即使用者可以請求提升存取權，而管理員可以進行驗證和核准。我們會在以下位置提供實作計劃，此計劃詳細說明預先佈建存取權和為*緊急情況、*角色做準備的最佳實務指引 [SEC10-BP05 預先佈建存取權](sec_incident_response_pre_provision_access.md)。

## 資源
<a name="resources"></a>

 **相關文件：** 
+ [在 AWS 上監控和通知](https://aws.amazon.com/blogs/mt/monitor-and-notify-on-aws-account-root-user-activity) 
+ [管理臨時提升的存取權](https://aws.amazon.com/blogs/security/managing-temporary-elevated-access-to-your-aws-environment/) 

 **相關影片：** 
+  [在 60 分鐘內精通 IAM 政策](https://youtu.be/YQsK4MtsELU) 

# SEC03-BP04 持續減少許可
<a name="sec_permissions_continuous_reduction"></a>

 當團隊和工作負載決定他們需要的存取時，請移除他們不再使用的許可，並建立檢閱程序以達到最低權限的許可。持續監控和減少未使用的身分和許可。 

有時，當團隊和專案剛開始時，您可以選擇授予廣泛存取權 (在開發或測試環境中) 來激發創新和靈活性。我們建議您持續評估存取權，而且尤其在生產環境中，將存取權限制為僅必要許可及達到最低權限。AWS 提供存取權分析功能，以協助您識別未使用的存取權。為了協助您識別未使用的使用者、角色和登入資料，AWS 會分析存取活動，並提供存取金鑰和角色上次使用的資訊。您可以使用 [上次存取的時間戳記](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor-view-data.html) 來 [識別未使用的使用者和角色](http://aws.amazon.com/blogs/security/identify-unused-iam-roles-remove-confidently-last-used-timestamp/)，並將其移除。此外，您可以檢閱服務和動作上次存取的資訊，以識別和 [加強特定使用者和角色的許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html)。例如，您可以使用上次存取的資訊來識別您的應用程式角色所需的特定 Amazon Simple Storage Service (Amazon S3) 動作，並限制只能存取這些動作。這些功能可在AWS 管理主控台中透過程式設計方式提供，讓您能夠將這些功能併入基礎設施工作流程和自動化工具中。

 **若未建立此最佳實務，暴露的風險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>
+  設定 AWS Identify and Access Management (IAM) Access Analyzer：AWS IAM Access Analyzer 可協助您識別組織和帳戶中與外部實體共用的資源，例如 Amazon Simple Storage Service (Amazon S3) 儲存貯體或 IAM 角色。 
  + [AWS IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) 

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [屬性型存取控制 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) 
+  [授予最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) 
+  [移除不需要的登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#remove-credentials) 
+  [制定原則](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) 

 **相關影片：** 
+  [在 60 分鐘內精通 IAM 政策](https://youtu.be/YQsK4MtsELU) 
+  [責任區隔、最低權限、委派和 CI/CD](https://youtu.be/3H0i7VyTu70) 

# SEC03-BP05 為您的組織定義許可防護機制
<a name="sec_permissions_define_guardrails"></a>

 建立通用控制項，限制對組織中所有身分的存取權。比方說，您可以限制對特定 AWS 區域 的存取權，或防止操作人員刪除常見資源，例如用於中央安全團隊的 IAM 角色。 

 **常見的反模式：** 
+ 在組織管理員帳戶中執行工作負載。
+ 在相同帳戶中執行生產和非生產工作負載。

 **若未建立此最佳實務，暴露的風險等級：** 中 

## 實作指引
<a name="implementation-guidance"></a>

 隨著工作負載在 AWS 中成長而需要加以管理，應該使用帳戶區隔這些工作負載，並使用 AWS Organizations 管理那些帳戶。我們建議您建立常見的許可防護機制，限制對組織中所有身分的存取權。比方說，您可以限制對特定 AWS 區域 的存取權，或防止團隊刪除常見資源，例如中央安全團隊使用的 IAM 角色。

 您可以透過實作範例服務控制政策來開始使用，例如防止使用者停用重要服務。SCP 使用 IAM 政策語言，並讓您能夠建立所有 IAM 主體 (使用者和角色) 都遵循的控制項。您可以根據特定條件限制對特定服務動作、資源的存取，以滿足您組織的存取控制需求。如有必要，您可以為防護機制定義例外狀況。例如，您可以限制帳戶中所有 IAM 實體的服務動作，但特定管理員角色除外。 

 我們建議您在管理帳戶中避免執行工作負載。應使用管理帳戶來管控和部署會對成員帳戶造成影響的安全防護機制。某些 AWS 服務支援使用委派的管理員帳戶。當委派的帳戶可用時，您應使用該帳戶，而不是管理帳戶。您應嚴格限制組織管理員帳戶的存取權。

使用多帳戶策略，可讓您在將防護機制套用到工作負載時享有更大的彈性。AWS 安全性參考架構提供規範性指引，其中說明如何設計帳戶結構。AWS Control Tower 之類的 AWS 服務提供的功能，可同時集中管理組織中的預防性和偵測性控制項。清楚定義每個帳戶或組織中 OU 的用途，並根據該用途限制控制項。

## 資源
<a name="resources"></a>

 **相關文件：** 
+ [AWS Organizations](https://aws.amazon.com/organizations/) 
+ [服務控制政策 (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) 
+ [在多帳戶環境中充分利用服務控制政策](https://aws.amazon.com/blogs/security/get-more-out-of-service-control-policies-in-a-multi-account-environment/) 
+ [AWS 安全性參考架構 (AWS SRA)](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/welcome.html) 

 **相關影片：** 
+ [使用服務控制政策來強制執行預防性防護機制](https://www.youtube.com/watch?v=mEO05mmbSms) 
+  [使用 AWS Control Tower 大規模建立管控](https://www.youtube.com/watch?v=Zxrs6YXMidk) 
+  [深入探討 AWS 身分和存取管理](https://www.youtube.com/watch?v=YMj33ToS8cI) 

# SEC03-BP06 根據生命週期管理存取
<a name="sec_permissions_lifecycle"></a>

 將存取控制與操作員和應用程式之生命週期以及集中化的聯合身分供應商相整合。例如，在使用者離職或變動職務時移除其存取權。 

當您使用個別帳戶管理工作負載時，有時您需要在這些帳戶之間共用資源。建議您使用 [AWS Resource Access Manager (AWS RAM)](http://aws.amazon.com/ram/)。此服務可讓您輕鬆、安全地在 AWS Organizations和組織單位內共用 AWS 資源。使用 AWS RAM，當帳戶移入和移出共用它們的組織或組織單位時，會自動授予或撤銷共用資源的存取權。這可協助您確保資源只與您的預期帳戶共用。

 **若未建立此最佳實務，暴露的風險等級：** 低 

## 實作指引
<a name="implementation-guidance"></a>

 使用者存取生命週期：為加入的新使用者、工作職能變更和離開的使用者，實作使用者存取生命週期的政策，以便只有目前的使用者擁有存取權。 

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [屬性型存取控制 (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) 
+  [授予最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) 
+  [IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) 
+  [移除不需要的登入資料](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#remove-credentials) 
+  [制定原則](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html) 

 **相關影片：** 
+  [在 60 分鐘內精通 IAM 政策](https://youtu.be/YQsK4MtsELU) 
+  [責任區隔、最低權限、委派和 CI/CD](https://youtu.be/3H0i7VyTu70) 

# SEC03-BP07 分析公有和跨帳戶存取權
<a name="sec_permissions_analyze_cross_account"></a>

持續監控強調公有和跨帳戶存取權的問題清單。減少僅對需要此類存取之資源的公有存取權和跨帳戶存取權。

 **常見的反模式：** 
+  未遵循程序來管控跨帳戶的存取權以及資源的公有存取權。 

 **若未建立此最佳實務，暴露的風險等級：** 低 

## 實作指引
<a name="implementation-guidance"></a>

在 AWS 中，您可以授予另一個帳戶中資源的存取權。您授予直接跨帳戶存取權，方法是使用附加至資源的政策 (例如，[Amazon Simple Storage Service (Amazon S3) 儲存貯體政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)) 或透過允許某個身分在另一個帳戶中擔任 IAM 角色。使用資源政策時，確認將存取權授予貴組織中的身分，且您預計公開資源。定義程序，來核准所有需要公開提供的資源。

 [IAM Access Analyzer](https://aws.amazon.com/iam/features/analyze-access/) 使用 [可證明的安全](https://aws.amazon.com/security/provable-security/) ，來找出從其帳戶外部存取資源的所有路徑。其會持續審查資源政策，並報告公有和跨帳戶存取權的問題清單，讓您輕鬆分析可能的各種存取。考量使用 AWS Organizations 設定 IAM Access Analyzer，來確認您對所有帳戶的能見度。IAM Access Analyzer 也讓您能夠 [預覽 Access Analyzer 問題清單](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html)，然後再部署資源許可。這可讓您驗證政策變更是否僅授予對您資源的預期公有和跨帳戶存取權。預計授予多帳戶存取權時，您可以使用 [信任政策來控制在什麼情況下可以擔任角色](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/)。例如，您可以將角色擔任限制在特定來源 IP 範圍。

 您也可以使用 [AWS Config，透過](https://docs.aws.amazon.com/config/latest/developerguide/operational-best-practices-for-Publicly-Accessible-Resources.html) AWS Config 政策檢查，報告和修復資源的任何意外公有存取組態。諸如 [AWS Control Tower](https://aws.amazon.com/controltower) 和 [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html) 之類的服務可簡化 AWS Organizations 之間的部署檢查和防護機制，來找出和修復公開暴露的資源。例如，AWS Control Tower 具備受管的防護機制，可偵測是否 [所有 AWS 帳戶都可復原所有 Amazon EBS 快照](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)。

## 資源
<a name="resources"></a>

 **相關文件：** 
+  [使用 AWS Identity and Access Management Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html?ref=wellarchitected)
+  [AWS Control Tower 中的防護機制](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html) 
+  [AWS 基礎安全最佳實務標準](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html)
+  [AWS Config 受管規則](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html) 
+  [AWS Trusted Advisor 檢查參考](https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor-check-reference.html) 

 **相關影片：** 
+ [保護多帳戶環境的最佳實務](https://www.youtube.com/watch?v=ip5sn3z5FNg)
+ [深入了解 IAM Access Analyzer](https://www.youtube.com/watch?v=i5apYXya2m0)

# SEC03-BP08 安全地共用資源
<a name="sec_permissions_share_securely"></a>

 管控跨帳戶或 AWS Organizations 內共用資源的使用量。監控共用資源並審查共用資源的存取。 

 **常見的反模式：** 
+  在授予第三方跨帳戶存取權時使用預設 IAM 信任政策。 

 **若未建立此最佳實務，暴露的風險等級：** 低 

## 實作指引
<a name="implementation-guidance"></a>

 在使用多個 AWS 帳戶管理工作負載時，您可能需要在帳戶之間共用資源。這可能通常會是 AWS Organizations 中的跨帳戶共用。數種 AWS 服務，例如 [AWS Security Hub CSPM](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-securityhub.html)、[Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_organizations.html)和 [AWS Backup](https://docs.aws.amazon.com/organizations/latest/userguide/services-that-can-integrate-backup.html) 都有與 Organizations 整合的跨帳戶功能。您可以使用 [AWS Resource Access Manager](https://aws.amazon.com/ram/) 來共用其他常見的資源，例如 [VPC 子網路或傳輸閘道連接](https://docs.aws.amazon.com/ram/latest/userguide/shareable.html#shareable-vpc)，[AWS Network Firewall](https://docs.aws.amazon.com/ram/latest/userguide/shareable.html#shareable-network-firewall)，或 [Amazon SageMaker Runtime 管道](https://docs.aws.amazon.com/ram/latest/userguide/shareable.html#shareable-sagemaker)。如果您想要確保帳戶的資源共用範圍僅限於 Organizations，我們建議使用 [服務控制政策 (SCP)](https://docs.aws.amazon.com/ram/latest/userguide/scp.html) 來避免對外部主體的存取。

 共用資源時，您應採取措施來防止意外的存取。我們建議結合以身分為基礎的控制項和網路控制項， [來為貴組織建立資料周邊](https://docs.aws.amazon.com/whitepapers/latest/building-a-data-perimeter-on-aws/building-a-data-perimeter-on-aws.html)。這些控制項應嚴格限制可以共用哪些資源，並防止共用或公開遭禁止的資源。例如，在資料周邊中，您可以使用 VPC 端點政策和 `aws:PrincipalOrgId` 條件，來確保 Amazon S3 儲存貯體的存取身分是貴組織的一員。

 在某些案例中，您可能想要允許共用 Organizations 外部的資源或授予第三方存取帳戶。例如，合作夥伴可能會提供監控解決方案，該解決方案需要存取您帳戶中的資源。在那些案例中，您應僅使用第三方需要的權限，來建立 IAM 跨帳戶角色。您也應使用外部 ID 條件 [來建立信任政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)。使用外部 ID 時，您應為每個第三方產生唯一的 ID。唯一 ID 的提供者或控制者不得是第三方。如果第三方不再需要存取您的環境，您應將角色移除。在所有案例中，您也應避免為第三方提供長期的 IAM 憑證。掌握對其他原生支援共用的 AWS 服務的狀態。例如，AWS Well-Architected Tool 允許 [在其他 AWS 帳戶中](https://docs.aws.amazon.com/wellarchitected/latest/userguide/workloads-sharing.html) 共用工作負載。

 使用 Amazon S3 之類的服務時，建議您 [停用 Amazon S3 儲存貯體的 ACL，](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) 並使用 IAM 政策來定義存取控制。[如需限制](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) 從 [Amazon CloudFront](https://aws.amazon.com/cloudfront/)對 Amazon S3 原點的存取，請從原始存取身分 (OAI) 遷移至原始存取控制 (OAC)，後者支援額外的功能，包含使用下列項目的伺服器端加密功能： [AWS KMS](https://aws.amazon.com/kms/)。

## 資源
<a name="resources"></a>

 **相關文件：** 
+ [儲存貯體擁有者將跨帳戶許可授予非其擁有的物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example4.html)
+ [如何使用信任政策搭配 IAM](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/)
+ [在 AWS 上建置資料周邊](https://docs.aws.amazon.com/whitepapers/latest/building-a-data-perimeter-on-aws/building-a-data-perimeter-on-aws.html)
+ [向第三方授予對 AWS 資源的存取權限時如何使用外部 ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)

 **相關影片：** 
+ [使用 AWS Resource Access Manager 進行精密的存取](https://www.youtube.com/watch?v=X3HskbPqR2s)
+ [使用 VPC 端點確保資料周邊的安全](https://www.youtube.com/watch?v=iu0-o6hiPpI)
+ [ 在 AWS 上建立資料周邊 ](https://www.youtube.com/watch?v=SMi5OBjp1fI)