

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 中使用憑證型存取控制的重要概念 AWS
<a name="concepts"></a>

中的憑證型存取控制 AWS 需要了解數個相互依賴的身分驗證和授權概念。例如，最低權限原則會決定透過憑證型身分驗證授予的許可範圍，這會直接影響 AWS Identity and Access Management (IAM) 角色和政策設計。憑證型身分驗證本身倚賴 X.509 憑證驗證與設定的信任錨點，其定義用於憑證驗證的密碼編譯信任鏈。透過此程序產生的臨時安全登入資料具有特定的生命週期特性，會影響工作階段管理和登入資料輪換策略。此外， AWS Identity and Access Management Roles Anywhere 實作雙層許可模型，其中 IAM 角色政策和設定檔組態都必須授權存取。如果不了解這些概念如何互動，實作可能會導致身分驗證失敗、過度特權存取或憑證驗證鏈中的安全漏洞。這些概念構成在憑證型 AWS 存取控制系統中正確設定信任關係、許可界限和憑證生命週期所需的技術基礎。

**Topics**
+ [最低權限](#concepts-least-privilege)
+ [憑證型身分驗證](#concepts-certificate-based-authentication)
+ [信任錨點和信任模型](#concepts-trust-models)
+ [暫時安全憑證](#concepts-temp-sec-creds)
+ [IAM 中的雙層許可](#concepts-dual-layers-permissions)
+ [AWS 登入資料協助程式](#concepts-credential-helper)

## 最低權限
<a name="concepts-least-privilege"></a>

* 最低權限*原則是一種安全概念，建議授予使用者、程式或系統執行其任務所需的最低存取層級 （或*許可*)。指導理念很簡單 — 實體擁有的許可越少，惡意或意外損壞的風險就越低。

在 的內容中 AWS，此原則特別相關。 AWS 提供各種資源和服務，從虛擬機器到儲存資源。當您建置和管理 AWS 基礎設施時，套用最低權限原則可確保每個實體 （使用者、服務或應用程式） 僅具有正常運作所需的許可，而無其他功能。

在 中實作最低權限 AWS 有下列優點：
+ **安全** – 透過限制存取，您可以降低安全漏洞的潛在影響。如果使用者或服務具有最低許可，則損壞範圍會大幅降低。
+ **合規** – 許多法規架構需要嚴格的存取控制。遵循最低權限原則可協助您滿足這些合規要求。
+ **操作簡單** – 管理許可可能會變得複雜。套用最低權限可讓組態盡可能簡單且易於管理。

## 憑證型身分驗證
<a name="concepts-certificate-based-authentication"></a>

憑證型身分驗證使用數位憑證來驗證裝置、服務或應用程式的身分。X.509 憑證包含識別實體並由信任憑證授權單位簽署的屬性。此身分驗證方法不需要靜態登入資料，並提供密碼編譯的安全方法來建立信任。

雖然身分型身分驗證依賴直接與 IAM [角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)或[使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)相關聯的憑證，但憑證型身分驗證會使用 X.509 憑證來建立身分。憑證型身分驗證透過提供更強大的安全狀態、自動憑證輪換，以及編碼可用於精細存取控制的屬性，在混合環境中提供優勢。

## 信任錨點和信任模型
<a name="concepts-trust-models"></a>

您可以透過建立信任錨點，在 IAM Roles Anywhere 與憑證授權單位 (CA) 之間建立信任。 **信任錨點是 [AWS 私有 CA](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaWelcome.html)或外部 CA 來源的參考。使用信任 CA 發行的憑證來交換臨時 AWS 憑證，以信任錨點進行身分 AWS 驗證以外的工作負載。一個中可以有多個信任錨點 AWS 帳戶。如需詳細資訊，請參閱[IAM Roles Anywhere 信任模型](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/trust-model.html)。*信任模型*會定義驗證憑證的方式，以及成功驗證所需的憑證屬性。

## 暫時安全憑證
<a name="concepts-temp-sec-creds"></a>

*暫時安全登入*資料提供對 AWS 資源的時間限制存取，通常持續幾分鐘到幾個小時。與長期存取金鑰不同，這些登入資料會自動過期。這可大幅降低憑證洩露的風險，並簡化分散式系統的存取管理。如需臨時登入資料的詳細資訊，請參閱 IAM 文件中的[要求工作負載搭配 IAM 角色使用臨時登入資料來存取 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-workloads-use-roles)最佳實務。

## IAM 中的雙層許可
<a name="concepts-dual-layers-permissions"></a>

IAM Roles Anywhere 透過結合 IAM 角色和設定檔來實作雙層許可模型。在*設定檔*中，您可以定義 IAM 工作階段政策，以限制為工作階段建立的許可。設定檔可以有許多 IAM 角色，但只能有一個工作階段政策。雙層許可模型透過要求在授予存取權之前，在兩層明確允許許可，以提供增強的安全性。以下是兩個圖層：
+ *IAM 角色層*定義下列項目：
  + 決定哪些實體可以擔任角色的信任政策
  + 指定角色可存取哪些 AWS 資源及其可執行哪些動作的許可政策
  + 可以根據特定條件進一步限制存取的條件元素
+ *IAM Roles Anywhere 設定檔層*會執行下列動作：
  + 定義可以透過 擔任哪些 IAM 角色 IAM Roles Anywhere
  + 為角色擔任提供額外的控制
  + 做為許可篩選條件，即使 IAM 角色本身允許更廣泛的存取

例如，如果 IAM 角色允許存取 Amazon Simple Storage Service (Amazon S3) 和 Amazon DynamoDB，但設定檔僅允許 Amazon S3 存取，則應用程式只能存取 Amazon S3 資源。這種雙層方法需要兩個層的明確許可，以強制執行最低權限原則。

## AWS 登入資料協助程式
<a name="concepts-credential-helper"></a>

透過使用 的[登入資料協助程式](https://github.com/aws/rolesanywhere-credential-helper) (GitHub) IAM Roles Anywhere，您可以透過 AWS Command Line Interface (AWS CLI) 定義在允許應用程式存取 AWS 資源時要使用的信任錨點、設定檔和角色。以下是使用 AWS 登入資料協助程式工具的範例呼叫：

```
./aws_signing_helper credential-process 
   \--certificate <Path to certificate>
   \--private-key <Path to private key> 
   \--trust-anchor-arn <Trust anchor ARN> 
   \--profile-arn <Profile 1 ARN>
   \--role-arn <Role 1 ARN>
```

此工具與語言 SDKs 提供`credential_process`的功能相容。與 AWS SDK 搭配使用時，這些登入資料會在過期之前自動重新整理，不需要額外的登入資料續約實作。登入資料協助程式會管理使用憑證建立簽章的程序，並呼叫端點以取得工作階段登入資料。然後，它會以標準 JSON 格式將臨時安全登入資料傳回給呼叫程序。

如需詳細資訊，請參閱[從 取得臨時安全登入 IAM Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html)資料。