

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 Terraform 状态文件导入 AWS Resilience Hub
<a name="security-iam-resilience-hub-terraform-secondary"></a>

AWS Resilience Hub 支持导入使用服务器端加密 (SSE)、亚马逊简单存储服务托管密钥 (SSE-S3) 或托管密钥 (SSE-KMS) 加密的 Terraform 状态文件。 AWS Key Management Service 如果您的 Terraform 状态文件使用客户提供的加密密钥（SSE-C）进行加密，则无法使用 AWS Resilience Hub导入它们。

将 Terraform 状态文件导入到中 AWS Resilience Hub 需要以下 IAM 策略，具体取决于您的状态文件所在的位置。

## 从主账户中的 Amazon S3 存储桶导入 Terraform 状态文件
<a name="w2aac21c23c48b7"></a>

需要以下 Amazon S3 存储桶策略和 IAM policy 策略才能允许 AWS Resilience Hub 对位于主账户的 Amazon S3 存储桶中的 Terraform 状态文件进行读取。
+ 存储桶策略 – 目标 Amazon S3 存储桶的存储桶策略，该存储桶位于主账户中。有关更多信息，请参阅以下示例。
+ 身份策略 — 为该应用程序定义的调用者角色或主 AWS 账户 AWS Resilience Hub 上的 AWS 当前 IAM 角色的关联身份策略。有关更多信息，请参阅以下示例。

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::<s3-bucket-name>/<path-to-state-file>"
      },
      {
        "Effect": "Allow",
        "Action": "s3:ListBucket",
        "Resource": "arn:aws:s3:::<s3-bucket-name>"
      }
    ]
  }
  ```

------
**注意**  
如果您使用的是 `AWSResilienceHubAsssessmentExecutionPolicy` 托管式策略，则不需要 `ListBucket` 权限。

**注意**  
如果您的 Terraform 状态文件使用 KMS 加密，则必须添加以下 `kms:Decrypt` 权限。  

```
{
      "Effect": "Allow",
      "Action": [
              "kms:Decrypt",
      ],
      "Resource": "<arn_of_kms_key>"
}
```

## 从位于辅助账户中的 Amazon S3 存储桶导入 Terraform 状态文件
<a name="w2aac21c23c48b9"></a>
+ 存储桶策略 – 目标 Amazon S3 存储桶的存储桶策略，该存储桶位于其中一个辅助账户中。有关更多信息，请参阅以下示例。
+ 身份策略- AWS 账户角色的关联身份策略，该策略在主 AWS 账户 AWS Resilience Hub 上运行。有关更多信息，请参阅以下示例。
**注意**  
如果您使用的是 `AWSResilienceHubAsssessmentExecutionPolicy` 托管式策略，则不需要 `ListBucket` 权限。

**注意**  
如果您的 Terraform 状态文件使用 KMS 加密，则必须添加以下 `kms:Decrypt` 权限。  

```
{
      "Effect": "Allow",
      "Action": [
              "kms:Decrypt",
      ],
      "Resource": "<arn_of_kms_key>"
}
```