

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

# AWS Health 身分型政策範例
<a name="security_iam_id-based-policy-examples"></a>

根據預設，IAM 使用者和角色不具備建立或修改 AWS Health 資源的許可。他們也無法使用 AWS 管理主控台 AWS CLI或 AWS API 執行任務。IAM 管理員必須建立 IAM 政策，授予使用者和角色在指定資源上執行特定 API 作業的所需許可。管理員接著必須將這些政策連接至需要這些許可的 IAM 使用者或群組。

若要了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策，請參閱《IAM 使用者指南》**中的[在 JSON 標籤上建立政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)。

**Topics**
+ [政策最佳實務](#security_iam_service-with-iam-policy-best-practices)
+ [使用 AWS Health 主控台](#security_iam_id-based-policy-examples-console)
+ [允許使用者檢視他們自己的許可](#security_iam_id-based-policy-examples-view-own-permissions)
+ [存取 AWS Health 儀表板和 AWS Health API](#security_iam_id-based-policy-examples-access-dashboard)
+ [根據資源與根據動作的條件](#resource-action-based-conditions)

## 政策最佳實務
<a name="security_iam_service-with-iam-policy-best-practices"></a>

身分型政策會判斷您帳戶中的某個人員是否可以建立、存取或刪除 AWS Health 資源。這些動作可能會讓您的 AWS 帳戶產生費用。當您建立或編輯身分型政策時，請遵循下列準則及建議事項：
+ **開始使用 AWS 受管政策並邁向最低權限許可** – 若要開始將許可授予您的使用者和工作負載，請使用將許可授予許多常見使用案例的 *AWS 受管政策*。它們可在您的 中使用 AWS 帳戶。我們建議您定義特定於使用案例 AWS 的客戶受管政策，以進一步減少許可。如需更多資訊，請參閱《*IAM 使用者指南*》中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[任務職能的AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+ **套用最低權限許可** – 設定 IAM 政策的許可時，請僅授予執行任務所需的許可。為實現此目的，您可以定義在特定條件下可以對特定資源採取的動作，這也稱為*最低權限許可*。如需使用 IAM 套用許可的更多相關資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的政策和許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ **使用 IAM 政策中的條件進一步限制存取權** – 您可以將條件新增至政策，以限制動作和資源的存取。例如，您可以撰寫政策條件，指定必須使用 SSL 傳送所有請求。如果透過特定 例如 使用服務動作 AWS 服務，您也可以使用條件來授予其存取權 CloudFormation。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素：條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **使用 IAM Access Analyzer 驗證 IAM 政策，確保許可安全且可正常運作** – IAM Access Analyzer 驗證新政策和現有政策，確保這些政策遵從 IAM 政策語言 (JSON) 和 IAM 最佳實務。IAM Access Analyzer 提供 100 多項政策檢查及切實可行的建議，可協助您撰寫安全且實用的政策。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[使用 IAM Access Analyzer 驗證政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **需要多重要素驗證 (MFA)** – 如果您的案例需要 IAM 使用者或 中的根使用者 AWS 帳戶，請開啟 MFA 以提高安全性。如需在呼叫 API 操作時請求 MFA，請將 MFA 條件新增至您的政策。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[透過 MFA 的安全 API 存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

如需 IAM 中最佳實務的相關資訊，請參閱《*IAM 使用者指南*》中的 [IAM 安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 使用 AWS Health 主控台
<a name="security_iam_id-based-policy-examples-console"></a>

若要存取 AWS Health 主控台，您必須擁有一組最低許可。這些許可必須允許您列出和檢視 AWS 帳戶中 AWS Health 資源的詳細資訊。如果您建立比最基本必要許可更嚴格的身分型政策，則對於具有該政策的實體 (IAM 使用者或角色) 而言，主控台就無法如預期運作。

為了確保這些實體仍然可以使用 AWS Health 主控台，您可以連接下列 AWS 受管政策 [https://console.aws.amazon.com//iam/home?#/policies/arn:aws:iam::aws:policy/AWSHealthFullAccess](https://console.aws.amazon.com//iam/home?#/policies/arn:aws:iam::aws:policy/AWSHealthFullAccess)。

此`AWSHealthFullAccess`政策會授予實體對下列項目的完整存取權：
+ 啟用或停用 AWS Health 組織中所有帳戶 AWS 的組織檢視功能
+  AWS Health 主控台中的 AWS Health 儀表板
+ AWS Health API 操作和通知
+ 檢視屬於您 AWS 組織一部分的帳戶相關資訊
+ 檢視管理帳戶的組織單位 (OU)

**Example : AWSHealthFullAccess**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "organizations:EnableAWSServiceAccess",
                "organizations:DisableAWSServiceAccess"         
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "organizations:ServicePrincipal": "health.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "health:*",
                "organizations:DescribeAccount",    
                "organizations:ListAccounts",
                "organizations:ListDelegatedAdministrators",
                "organizations:ListParents"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:AWSServiceName": "health.amazonaws.com"
                }
            }
        }
    ]
}
```

**注意**  
您也可以使用 `Health_OrganizationsServiceRolePolicy` AWS 受管政策，讓 AWS Health 可以檢視組織中其他帳戶的事件。如需詳細資訊，請參閱[使用 的服務連結角色 AWS Health](using-service-linked-roles.md)。

對於僅呼叫 AWS CLI 或 AWS API 的使用者，您不需要允許最低主控台許可。反之，只需允許存取符合您嘗試執行之 API 作業的動作就可以了。

如需詳細資訊，請參閱《IAM 使用者指南》**中的[新增許可到使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)。

## 允許使用者檢視他們自己的許可
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

此範例會示範如何建立政策，允許 IAM 使用者檢視附加到他們使用者身分的內嵌及受管政策。此政策包含在主控台或使用 或 AWS CLI AWS API 以程式設計方式完成此動作的許可。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 存取 AWS Health 儀表板和 AWS Health API
<a name="security_iam_id-based-policy-examples-access-dashboard"></a>

 AWS Health 儀表板適用於所有 AWS 帳戶。 AWS Health API 僅適用於具有 AWS Business Support\+、 AWS Enterprise Support 或 AWS Unified Operations 計劃的帳戶。如需詳細資訊，請參閱[支援](https://aws.amazon.com/premiumsupport/)。

您可以使用 IAM 建立實體 （使用者、群組或角色），然後授予這些實體存取 AWS Health Dashboard 和 AWS Health API 的許可。

根據預設，IAM 使用者無法存取 AWS Health Dashboard 或 AWS Health API。您可以將 IAM 政策連接至單一使用者、使用者群組或角色，讓使用者存取帳戶 AWS Health 的資訊。如需詳細資訊，請參閱[身分 (使用者、群組和角色)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) 和 [IAM 政策概觀](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html)。

在您建立 IAM 使用者之後，您可以為這些使用者提供個別的密碼。然後，他們可以登入您的帳戶，並使用帳戶特定的登入頁面來檢視 AWS Health 資訊。如需詳細資訊，請參閱[使用者如何登入您的帳戶](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_how-users-sign-in.html)。

**注意**  
有權檢視 AWS Health Dashboard 的 IAM 使用者對帳戶上所有 AWS 服務的運作狀態資訊具有唯讀存取權，包括但不限於 AWS 資源 IDs，例如 Amazon EC2 執行個體 IDs、EC2 執行個體 IP 地址和一般安全通知。  
例如，如果 IAM 政策僅授予 AWS Health Dashboard 和 API 的 AWS Health 存取權，則政策套用的使用者或角色可以存取關於 AWS 服務和相關資源發佈的所有資訊，即使其他 IAM 政策不允許該存取權。

您可以使用兩個 APIs 群組 AWS Health。
+ 個別帳戶 – 您可以使用 [DescribeEvents](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEvents.html) 和 [DescribeEventDetails](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventDetails.html) 等操作來取得您帳戶 AWS Health 事件的相關資訊。
+ 組織帳戶 – 您可以使用 [DescribeEventsForOrganization](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventsForOrganization.html) 和 [DescribeEventDetailsForOrganization](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventDetailsForOrganization.html) 等操作，以取得屬於您組織之帳戶 AWS Health 的事件相關資訊。

如需可用 API 操作的詳細資訊，請參閱 [AWS Health API 參考](https://docs.aws.amazon.com/health/latest/APIReference/)。

### 個別動作
<a name="individual-account-health-api-actions"></a>

您可以將 IAM 政策的 `Action`元素設定為 `health:Describe*`。這允許存取 AWS Health 儀表板和 AWS Health。 AWS Health 支援根據 `eventTypeCode`和 服務對事件的存取控制。

#### 描述存取權
<a name="allow-describe-access-example"></a>

此政策陳述式授予 AWS Health Dashboard 和任何 `Describe*` AWS Health API 操作的存取權。例如，具有此政策的 IAM 使用者可以存取 中的 AWS Health 儀表板， AWS 管理主控台 並呼叫 `DescribeEvents` API AWS Health 操作。

**Example ：描述存取權**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
  {
    "Effect": "Allow",
    "Action": [
      "health:Describe*"
    ],
    "Resource": "*"
  }]
}
```

#### 拒絕存取
<a name="deny-access-example"></a>

此政策陳述式拒絕存取 AWS Health Dashboard 和 AWS Health API。具有此政策的 IAM 使用者無法檢視 中的 AWS Health 儀表板 AWS 管理主控台 ，也無法呼叫任何 AWS Health API 操作。

**Example ：拒絕存取**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
  {
    "Effect": "Deny",
    "Action": [
      "health:*"
    ],
    "Resource": "*"
  }]
}
```

### 組織檢視
<a name="organizational-view"></a>

 如果您想要啟用 的組織檢視 AWS Health，您必須允許存取 AWS Health 和 AWS Organizations 動作。

IAM 政策的 `Action`元素必須包含下列許可：
+ `iam:CreateServiceLinkedRole`
+ `organizations:EnableAWSServiceAccess`
+ `organizations:DescribeAccount`
+ `organizations:DisableAWSServiceAccess`
+ `organizations:ListAccounts`
+ `organizations:ListDelegatedAdministrators`
+ `organizations:ListParents`

若要了解每個 APIs 所需的確切許可，請參閱《*IAM 使用者指南*》中的 [AWS Health APIs和通知定義的動作](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awshealthapisandnotifications.html#awshealthapisandnotifications-actions-as-permissions)。

**注意**  
您必須使用來自管理帳戶的登入資料，組織才能存取 AWS Health APIs AWS Organizations。如需詳細資訊，請參閱[跨帳戶彙總 AWS Health 事件](aggregate-events.md)。

#### 允許存取 AWS Health 組織檢視
<a name="allow-organizational-api-access"></a>

此政策陳述式會授予對組織檢視功能所需的所有 AWS Health 和 AWS Organizations 動作的存取權。

**Example ：允許 AWS Health 組織檢視存取**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "organizations:EnableAWSServiceAccess",
                "organizations:DisableAWSServiceAccess"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "organizations:ServicePrincipal": "health.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "health:*",
                "organizations:DescribeAccount",
                "organizations:ListAccounts",
                "organizations:ListDelegatedAdministrators",  
                "organizations:ListParents"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/health.amazonaws.com/AWSServiceRoleForHealth*"
        }
    ]
}
```

#### 拒絕存取 AWS Health 組織檢視
<a name="deny-organizational-api-access"></a>

此政策陳述式拒絕存取 AWS Organizations 動作，但允許存取個別帳戶 AWS Health 的動作。

**Example ：拒絕 AWS Health 組織檢視存取**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "health:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "organizations:EnableAWSServiceAccess",
                "organizations:DisableAWSServiceAccess"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "organizations:ServicePrincipal": "health.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "organizations:DescribeAccount",
                "organizations:ListAccounts",
                "organizations:ListDelegatedAdministrators",
                "organizations:ListParents"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/health.amazonaws.com/AWSServiceRoleForHealth*"
        }
    ]
}
```

**注意**  
如果您想要授予許可的使用者或群組已有 IAM 政策，您可以將 AWS Health特定政策陳述式新增至該政策。

## 根據資源與根據動作的條件
<a name="resource-action-based-conditions"></a>

AWS Health 支援 [ DescribeAffectedEntities](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedEntities.html) 和 [DescribeEventDetails](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventDetails.html) API 操作的 [IAM 條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)。您可以使用資源和動作型條件來限制 AWS Health API 傳送給使用者、群組或角色的事件。

若要這樣做，請更新 IAM 政策的 `Condition` 區塊或設定 `Resource`元素。您可以使用[字串條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)，根據特定 AWS Health 事件欄位限制存取。

當您在政策中指定 AWS Health 事件時，可以使用下列欄位：
+ `eventTypeCode`
+ `service`

**備註**  
[ DescribeAffectedEntities](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedEntities.html) 和 [DescribeEventDetails](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventDetails.html) API 操作支援資源層級許可。例如，您可以建立政策來允許或拒絕特定 AWS Health 事件。
[ DescribeAffectedEntitiesForOrganization](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedEntitiesForOrganization.html) 和 [DescribeEventDetailsForOrganization](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventDetailsForOrganization.html) API 操作不支援資源層級許可。
如需詳細資訊，請參閱*《服務授權參考*》中的 [AWS Health APIs 和通知的動作、資源和條件索引鍵](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awshealthapisandnotifications.html)。

**Example ：以動作為基礎的條件**  
此政策陳述式授予對 AWS Health Dashboard 和 `Describe*` API 操作的 AWS Health 存取權，但拒絕存取與 Amazon EC2 相關的任何 AWS Health 事件。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "health:Describe*",
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "health:DescribeAffectedEntities",
                "health:DescribeEventDetails"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "health:service": "EC2"
                }
            }
        }
    ]
}
```

**Example ：以資源為基礎的條件**  
以下政策有相同的效果，但是改用 `Resource` 元素。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
  {
    "Effect": "Allow",
    "Action": [
      "health:Describe*"
    ],
    "Resource": "*"
  },
  {
    "Effect": "Deny",
    "Action": [
      "health:DescribeEventDetails",
      "health:DescribeAffectedEntities"
    ],
    "Resource": "arn:aws:health:*::event/EC2/*/*"
  }]
}
```

**Example ：eventTypeCode 條件**  
此政策陳述式授予對 AWS Health Dashboard 和 `Describe*` API 操作的 AWS Health 存取權，但拒絕存取具有`eventTypeCode`符合 的任何 AWS Health 事件`AWS_EC2_*`。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "health:Describe*",
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "health:DescribeAffectedEntities",
                "health:DescribeEventDetails"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "health:eventTypeCode": "AWS_EC2_*"
                }
            }
        }
    ]
}
```

**重要**  
如果您呼叫 [DescribeAffectedEntities](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeAffectedEntities.html) 和 [DescribeEventDetails](https://docs.aws.amazon.com/health/latest/APIReference/API_DescribeEventDetails.html) 操作，而且沒有存取 AWS Health 事件的許可，則會顯示 `AccessDeniedException` 錯誤。如需詳細資訊，請參閱[對 AWS Health 身分和存取進行故障診斷](security_iam_troubleshoot.md)。