

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

# IAM 安全性的最佳實務
<a name="best-practices"></a>

IAM 管理員將負責以下三個關鍵領域。
+ 確保 SAP 系統可以使用 Amazon EC2 中繼資料或私密金鑰憑證進行自我驗證。
+ 確保 SAP 系統具有使用 提升自我所需的許可`sts:assumeRole`。
+ 對於每個邏輯 IAM 角色，為具有執行業務功能所需許可的 SAP 使用者建立 IAM 角色 （例如，Amazon S3、DynamoDB 或其他 服務的必要許可）。這些是 SAP 使用者將擔任的角色。

如需詳細資訊，請參閱 SAP Lens： AWS Well-Architected Framework 中的[安全](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/security.html)章節。

**Topics**
+ [Amazon EC2 執行個體描述檔的最佳實務](#best-practice-instance-profile)
+ [SAP 使用者的 IAM 角色](#iam-roles-sap-users)
+ [來源描述檔安全性考量](#source-profile-security)

## Amazon EC2 執行個體描述檔的最佳實務
<a name="best-practice-instance-profile"></a>

SAP 系統執行所在的 Amazon EC2 執行個體，會根據其執行個體描述檔擁有一組授權。一般而言，執行個體描述檔只需要具有呼叫 的許可`sts:assumeRole`，以允許 SAP 系統視需要擔任業務特定的 IAM 角色。這種提升到其他角色可確保 ABAP 程式可以擔任角色，為使用者提供執行其任務所需的最低權限。例如，執行個體描述檔可能包含下列陳述式。

------
#### [ JSON ]

****  

```
{
 "Version":"2012-10-17",		 	 	 
 "Statement": [
   {
     "Sid": "VisualEditor0",
     "Effect": "Allow",
     "Action": "sts:AssumeRole",
     "Resource":[
        "arn:aws:iam::012345678912:role/finance-cfo",
        "arn:aws:iam::012345678912:role/finance-auditor",
        "arn:aws:iam::012345678912:role/finance-reporting"
      ]
   }
 ]
}
```

------

上述範例允許 SAP 系統擔任 CFO、AUDITOR 或 REPORTING user 的 IAM 角色。 AWS SDK 會根據使用者在 SAP 中的 PFCG 角色，為使用者選擇正確的 IAM 角色。

Amazon EC2 執行個體描述檔也可以用於其他 函數。
+ [AWS SAP HANA 的後端代理程式](https://docs.aws.amazon.com/sap/latest/sap-hana/aws-backint-agent-sap-hana.html)
+ [SAP on AWS 高可用性與浮水印 IP 地址路由](https://docs.aws.amazon.com/sap/latest/sap-hana/sap-ha-overlay-ip.html)

這些解決方案也可能需要備份或容錯移轉特定角色的`sts:assumeRole`許可，或者可能需要直接指派給執行個體描述檔的許可。

## SAP 使用者的 IAM 角色
<a name="iam-roles-sap-users"></a>

ABAP 程式需要許可才能執行使用者的工作：讀取 DynamoDB 資料表、在 Amazon S3 中的 PDF 物件上叫用 Amazon Textract、執行 AWS Lambda 函數。相同的安全模型用於 AWS SDKs。您可以使用用於另一個 AWS SDK 的現有 IAM 角色。

SAP 業務分析師將針對所需的每個邏輯角色，向 IAM 管理員詢問 arn：aws： 的 IAM 角色。例如，在金融案例中，業務分析師可以定義下列邏輯 IAM 角色。
+  `CFO` 
+  `AUDITOR` 
+  `REPORTING` 

IAM 管理員會為每個邏輯 IAM 角色定義 IAM 角色。

 `CFO` 
+  `arn:aws:iam::0123456789:role/finance-cfo` 
+ 讀取和寫入許可至 Amazon S3 儲存貯體
+ 讀取和寫入許可至 DynamoDB 資料庫

 `AUDITOR` 
+  `arn:aws:iam::0123456789:role/finance-auditor` 
+ Amazon S3 儲存貯體的讀取許可
+  DynamoDB 資料庫的讀取許可

 `REPORTING` 
+  `arn:aws:iam::0123456789:role/finance-reporting` 
+ DynamoDB 資料庫的讀取許可
+ 沒有 Amazon S3 儲存貯體的許可

業務分析師會將 IAM 角色輸入映射表中，以將邏輯 IAM 角色映射至實體 IAM 角色。

SAP 使用者的 IAM 角色需要允許信任委託人`sts:assumeRole`的動作。信任的委託人可能會根據 SAP 系統在 上的身分驗證方式而有所不同 AWS。如需詳細資訊，請參閱[指定委託人](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying)。

以下是一些最常見的 SAP 案例範例。
+ **在已指派執行個體描述檔的 Amazon EC2 上執行的 SAP 系統** – 在此，Amazon EC2 執行個體描述檔會連接至 IAM 角色。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "sts:AssumeRole"
              ],
              "Principal": { 
                  "AWS": "arn:aws:iam::123456789012:role/SapInstanceProfile" 
              }
          }
      ]
  }
  ```

------
+ **在沒有執行個體描述檔的 Amazon EC2 上執行的 SAP 系統** – 在此，Amazon EC2 會擔任 SAP 使用者的角色。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "sts:AssumeRole"
              ],
              "Principal": { 
                  "Service": [ "ec2.amazonaws.com" ] 
              }
          }
      ]
  }
  ```

------
+ **內部部署執行的 SAP 系統** – 內部部署執行的 SAP 系統只能使用私密存取金鑰進行驗證。如需詳細資訊，請參閱 [上的 SAP 系統身分驗證 AWS](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/system-authentication.html)。

  在此，SAP 使用者擔任的任何 IAM 角色都必須具有信任 SAP 使用者的信任關係。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "sts:AssumeRole"
              ],
              "Principal": { 
                  "AWS": "arn:aws:iam::123456789012:user/SAP_SYSTEM_S4H" 
              }
          }
      ]
  }
  ```

------

## 來源描述檔安全性考量
<a name="source-profile-security"></a>

使用來源描述檔時：

### IAM 角色管理
<a name="iam-role-management"></a>

**關鍵**：必須嚴格管理來源設定檔鏈中的 IAM 角色，以防止未經授權的存取和權限提升：
+ **套用最低權限原則** - 僅授予每個角色特定用途所需的最低許可
+ **定期稽核角色許可** - 每季或在需求變更時檢閱和更新角色政策
+ **監控角色用量** - 用於追蹤 AssumeRole API 呼叫並識別異常模式
+ **限制信任關係** - 將哪些委託人可以擔任每個角色僅限於絕對需要存取的委託人
+ **在信任政策中使用條件** - 在適當情況下新增條件，例如來源 IP、MFA 要求或時間型限制
+ **文件角色用途** - 維護每個角色預期使用案例和必要許可的明確文件

### 授權和存取控制
<a name="authorization-access-control"></a>
+ 確保鏈結中的所有中繼設定檔都已設定適當的信任政策
+ 使用者必須擁有鏈結中所有設定檔`/AWS1/SESS`的授權，包括中繼設定檔
+ 每個 IAM 角色都必須明確信任鏈結中的先前角色

### 技術保護措施
<a name="technical-safeguards"></a>
+ SDK 會強制執行 5 個設定檔的最大鏈結深度，以防止 STS API 呼叫過多
+ 系統會自動偵測並防止循環參考
+ 基本設定檔身分驗證方法經過驗證，以確保其使用標準方法 (INST、SSF 或 RLA)

如需設定來源描述檔的詳細資訊，請參閱[使用來源描述檔進行跨帳戶存取](https://docs.aws.amazon.com/sdk-for-sapabap/latest/developer-guide/source-profile.html)。