

# 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)