

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

# Amazon MWAA 的安全性
<a name="security"></a>

云安全 AWS 是重中之重。作为 AWS 客户，您可以受益于专为满足大多数安全敏感型组织的要求而构建的数据中心和网络架构。

安全是 AWS 与您（客户）的共同责任。[责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)将其描述为云*的*安全性和云*中*的安全性：
+ **云安全** — AWS 负责保护在 AWS 云中运行 AWS 服务的基础架构。 AWS 还为您提供可以安全使用的服务。作为[AWS 合规计划合规计划合规计划合](https://aws.amazon.com/compliance/programs/)的一部分，第三方审计师定期测试和验证我们安全的有效性。要了解适用于 Amazon MWAA 的合规计划，请参阅合规计划[范围内的AWS 服务（按合规计划](https://aws.amazon.com/compliance/services-in-scope/)划分的）。
+ **云端安全**-您的责任由您使用的 AWS 服务决定。您还需要对其它因素负责，包括数据的敏感性、贵公司的要求以及适用的法律法规。

该文档帮助您了解如何在使用 Amazon MWAA 时应用责任共担模式。根据它配置 Amazon MWAA 以实现安全性和合规性目标。您还将学习如何使用其他 AWS 服务来帮助您监控和保护您的 Amazon MWAA 资源。

**Topics**
+ [数据保护](data-protection.md)
+ [AWS Identity and Access Management](security-iam.md)
+ [合规性验证](compliance-validation.md)
+ [恢复能力](disaster-recovery-resiliency.md)
+ [基础设施安全性](infrastructure-security.md)
+ [配置和脆弱性分析](configuration-vulnerability-analysis.md)
+ [最佳实践](security-best-practices.md)

# Amazon MWAA
<a name="data-protection"></a>

 AWS [分担责任模式分担责任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)适用于适用于 Apache Airflow 的亚马逊托管工作流程中的数据保护。如本模型所述 AWS ，负责保护运行所有内容的全球基础架构 AWS 云。您负责维护对托管在此基础设施上的内容的控制。此内容包括您所使用的 AWS 服务 的安全配置和管理任务。有关数据隐私的更多信息，请参阅[数据隐私常见问题](https://aws.amazon.com/compliance/data-privacy-faq)。有关欧洲数据保护的信息，请参阅 *AWS 安全博客*上的 [AWS 责任共担模式和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 博客文章。

出于数据保护目的，我们建议您保护 AWS 账户 凭证并使用 AWS Identity and Access Management (IAM) 设置个人用户账户。这仅向每个用户授予履行其工作职责所需的权限。我们还建议您通过以下方式保护数据：
+ 对每个账户使用多重身份验证（MFA）。
+ 用于 SSL/TLS 与 AWS 资源通信。建议使用 TLS 1.2 或更高版本。
+ 使用设置 API 和用户活动日志 AWS CloudTrail。
+ 使用 AWS 加密解决方案以及 AWS 服务中的所有默认安全控制。
+ 使用高级托管安全服务（例如 Amazon Macie），其有助于发现和保护存储在 Simple Storage Service（Amazon S3）中的个人数据。

我们强烈建议您切勿将机密信息或敏感信息（例如您客户的电子邮件地址）放入标签或自由格式字段（例如**名称**字段）。这包括您使用控制台、API 或使用 Amazon MWAA 或其他 AWS 服务时。 AWS CLI AWS SDKs您在用于名称的标签或自由格式字段中输入的任何数据都可能会用于计费或诊断日志。如果您向外部服务器提供 URL，强烈建议您不要在网址中包含凭证信息来验证对该服务器的请求。

# Amazon MWAA 上的加密
<a name="encryption"></a>

以下主题描述 Amazon MWAA 如何保护静态和传输中的数据。使用此信息了解 Amazon MWAA 如何与之集成 AWS KMS 以加密静态数据，以及如何使用传输层安全 (TLS) 协议对传输中的数据进行加密。

**Topics**
+ [静态加密](#encryption-at-rest)
+ [传输中加密](#encryption-in-transit)

## 静态加密
<a name="encryption-at-rest"></a>

在 Amazon MWAA 上，*静态*数据是服务保存到永久媒体的数据。

您可以使用 [AWS自有密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)进行静态数据加密，也可以选择在创建环境时提供[由客户托管的密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)以进行额外加密。如果您选择使用客户管理的 KMS 密钥，则该密钥必须与您在环境中使用的其他 AWS 资源和服务位于同一个账户中。

要使用客户管理的 KMS 密钥，必须附上 CloudWatch 访问密钥策略所需的策略声明。当您在环境中使用客户托管的 KMS 密钥时，Amazon MWAA 会代表您附加四项[授权](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)。有关 Amazon MWAA 附加到客户托管的 KMS 密钥的授权的更多信息，请参阅[用于数据加密的客户托管密钥](custom-keys-certs.md)。

如果您未指定客户管理的 KMS 密钥，则默认情况下，Amazon MWAA 会使用自己的 KMS 密钥来加密和解密您的数据。 AWS 我们建议使用 AWS 自有的 KMS 密钥来管理 Amazon MWAA 上的数据加密。

**注意**  
您需要为在 Amazon MWAA 上存储和使用 AWS 自有或客户管理的 KMS 密钥付费。有关更多信息，请参阅 [AWS KMS 定价](https://aws.amazon.com/kms/pricing/)。

### 加密构件
<a name="encryption-at-rest-services"></a>

在创建 Amazon MWAA 环境时，您可以通过指定 [AWS自有密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)或[由客户托管的密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)来指定用于静态加密的加密构件。Amazon MWAA 会向指定密钥添加所需的[授权](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)。

**Amazon S3** — Amazon S3 数据使用服务器端加密（SSE）进行对象级别加密。Amazon S3 加密和解密过程在存储 DAG 代码和支持文件的 Amazon S3 存储桶上进行。将对象上传到 Amazon S3 时对其进行加密，并在将其下载到 Amazon MWAA 环境时对其进行解密。默认情况下，如果您使用的是由客户托管的 KMS 密钥，Amazon MWAA 会使用它来读取和解密 Amazon S3 存储桶中的数据。

**CloudWatch 日志**-如果您使用的是 AWS 拥有的 KMS 密钥，则发送 CloudWatch 到日志的 Apache Airflow 日志将使用 SSE 使用日志 CloudWatch 拥有的 KMS 密钥进行加密。 AWS 如果您使用的是客户管理的 KMS 密钥，则必须向 KMS [密钥添加密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)以允许 CloudWatch Logs 使用您的密钥。

**Amazon SQS** — Amazon MWAA 为环境创建一个 Amazon SQS 队列。Amazon MWAA 使用 AWS 自有的 KMS 密钥或您指定的客户管理的 KMS 密钥使用 SSE 处理传入和传出队列的数据。无论您使用的是 AWS 自有的 KMS 密钥还是客户管理的 KMS 密钥，都必须向您的执行角色添加 Amazon SQS 权限。

**Aurora PostgreSQL** — Amazon MWAA 为环境创建一个 PostgreSQL 集群。Aurora PostgreSQL 使用 SSE 使用自有或客户管理的 KMS 密钥 AWS 对内容进行加密。如果您使用的是由客户托管的 KMS 密钥，Amazon RDS 会向该密钥添加至少两个授权：一个用于集群，一个用于数据库实例。如果您选择在多个环境中使用由客户托管的 KMS 密钥，Amazon RDS 可能会创建额外的授权。有关更多信息，请参阅 [Amazon RDS 中的数据保护](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DataDurability.html)。

## 传输中加密
<a name="encryption-in-transit"></a>

传输中数据是指在网络中传输时可能被拦截的数据。

传输层安全 (TLS) 对在您的环境的 Apache Airflow 组件和其他与亚马逊 MWAA 集成的 AWS 服务（例如亚马逊 S3）之间传输的 Amazon MWAA 对象进行加密。有关 Amazon S3 加密的更多信息，请参阅[使用加密保护数据](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingEncryption.html)。

# 使用由客户托管的密钥进行加密
<a name="custom-keys-certs"></a>

您可以选择为环境中的数据加密提供[客户管理的密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。您必须在与您的 Amazon MWAA 环境实例和存储工作流程资源的 Amazon S3 存储桶相同的区域中创建客户托管的 KMS 密钥。如果您指定的由客户托管的 KMS 密钥所在的账户与您用于配置环境的账户不同，则必须使用其 ARN 指定该密钥以进行跨账户访问。有关创建密钥的更多信息，请参阅《*AWS Key Management Service 开发者指南》*中的[创建密钥](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

## 支持什么？
<a name="custom-keys-grants-support"></a>


| AWS KMS 特征 | 支持 | 
| --- | --- | 
|  [AWS KMS 密钥 ID 或 ARN](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html)。  |  是  | 
|  [AWS KMS 密钥别名](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html)。  |  否  | 
|  [AWS KMS 多区域密钥](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)。  |  否  | 

## 使用授权进行加密。
<a name="custom-keys-grants-provide"></a>

本主题介绍 Amazon MWAA 代表您附加到由客户托管的 KMS 密钥的授权，以加密和解密数据。

### 工作原理
<a name="custom-keys-certs-grants"></a>

[客户管理的 KMS 密钥支持两种基于资源的访问控制机制：密[钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)和授权。 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)

当权限主要是静态且在同步服务模式下使用时，使用密钥政策。当需要更动态和更精细的权限时，例如当某服务需要为自己或其他账户定义不同的访问权限时，就会使用授权。

Amazon MWAA 使用四项授权策略并将其附加到由客户托管的 KMS 密钥。这是因为环境需要精细权限才能加密来自 CloudWatch 日志、Amazon SQS 队列、Aurora PostgreSQL 数据库数据库、Secrets Manager 密钥、亚马逊 S3 存储桶和 DynamoDB 表的静态数据。

当您创建 Amazon MWAA 环境并指定由客户托管的 KMS 密钥时，Amazon MWAA 会将授权策略附加到由客户托管的 KMS 密钥。这些策略允许 `airflow.us-east-1.amazonaws.com` 中的 Amazon MWAA 使用由客户托管的 KMS 密钥代表您加密 Amazon MWAA 拥有的资源。

Amazon MWAA 代表您为指定的 KMS 密钥创建并附加额外授权。这包括在删除环境后取消授权、使用客户管理的 KMS 密钥进行客户端加密 (CSE) 以及 AWS Fargate 执行角色需要在 Secrets Manager 中访问受客户管理的密钥保护的密钥的政策。

## 授权策略
<a name="custom-keys-certs-grant-policies"></a>

Amazon MWAA 代表您向由客户托管的 KMS 密钥添加以下[基于资源的策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)授权。这些策略允许被授予者和主体 (Amazon MWAA) 执行策略中定义的操作。

### 授权 1：用于创建数据面板资源
<a name="custom-keys-certs-grant-policies-1"></a>

```
{
  "Name": "mwaa-grant-for-env-mgmt-role-environment name",
  "GranteePrincipal": "airflow.us-east-1.amazonaws.com",
  "RetiringPrincipal": "airflow.us-east-1.amazonaws.com",
  "Operations": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:CreateGrant",
    "kms:DescribeKey",
    "kms:RetireGrant"
  ]
}
```

### 授权 2：用于 `ControllerLambdaExecutionRole` 访问权限
<a name="custom-keys-certs-grant-policies-2"></a>

```
{
  "Name": "mwaa-grant-for-lambda-exec-environment name",
  "GranteePrincipal": "airflow.us-east-1.amazonaws.com",
  "RetiringPrincipal": "airflow.us-east-1.amazonaws.com",
  "Operations": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey",
    "kms:RetireGrant"
  ]
}
```

### 授权 3：用于 `CfnManagementLambdaExecutionRole` 访问权限
<a name="custom-keys-certs-grant-policies-3"></a>

```
{
  "Name": " mwaa-grant-for-cfn-mgmt-environment name",
  "GranteePrincipal": "airflow.us-east-1.amazonaws.com",
  "RetiringPrincipal": "airflow.us-east-1.amazonaws.com",
  "Operations": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ]
}
```

### 授权 4：用于 Fargate 执行角色访问后端机密
<a name="custom-keys-certs-grant-policies-4"></a>

```
{
  "Name": "mwaa-fargate-access-for-environment name",
  "GranteePrincipal": "airflow.us-east-1.amazonaws.com",
  "RetiringPrincipal": "airflow.us-east-1.amazonaws.com",
  "Operations": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey",
    "kms:RetireGrant"
  ]
}
```

## 将密钥策略附加到由客户托管的密钥
<a name="custom-keys-certs-grant-policies-attach"></a>

如果您选择在 Amazon MWAA 中使用自己的由客户托管的 KMS 密钥，则必须将以下策略附加到密钥上，以允许 Amazon MWAA 使用它来加密数据。

如果您在 Amazon MWAA 环境中使用的客户管理的 KMS 密钥尚未配置为可使用 CloudWatch，则必须更新[密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)以允许使用加密日志。 CloudWatch 有关更多信息，请参阅[ CloudWatch 使用 AWS Key Management Service 服务中的加密日志数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)。

以下示例代表了 Lo CloudWatch gs 的密钥策略。替换为该区域提供的样本值。

```
{
  "Effect": "Allow",
  "Principal": {
    "Service": "logs.us-east-1.amazonaws.com"
  },
  "Action": [
    "kms:Encrypt*",
    "kms:Decrypt*",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:Describe*"
  ],
  "Resource": "*",
  "Condition": {
    "ArnLike": {
      "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:*:*"
    }
  }
}
```

# AWS Identity and Access Management
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) 是一项 AWS 服务，可帮助管理员安全地控制对 AWS 资源的访问。IAM 管理员控制谁可以通过身份验证（登录）和授权（具有权限）使用 Amazon MWAA 资源。IAM 是一项无需额外付费即可使用的 AWS 服务。

本主题基本概述了 Amazon MWAA 的使用方式 AWS Identity and Access Management (IAM)。要了解如何管理对 Amazon MWAA 的访问权限，请参阅 [管理对 Amazon MWAA 环境的访问](manage-access.md)。

**Topics**
+ [受众](#security_iam_audience)
+ [使用身份进行身份验证](#security_iam_authentication)
+ [使用策略管理访问](#security_iam_access-manage)
+ [允许用户访问他们自己的权限](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Amazon MWAA 身份和访问权限故障排除](security_iam_troubleshoot.md)
+ [Amazon MWAA 如何与 IAM 协同工作](security_iam_service-with-iam.md)

## 受众
<a name="security_iam_audience"></a>

您的使用方式 AWS Identity and Access Management (IAM) 因您的角色而异：
+ **服务用户**：如果您无法访问功能，请从管理员处请求权限（请参阅[Amazon MWAA 身份和访问权限故障排除](security_iam_troubleshoot.md)）
+ **服务管理员**：确定用户访问权限并提交权限请求（请参阅[Amazon MWAA 如何与 IAM 协同工作](security_iam_service-with-iam.md)）
+ **IAM 管理员**：编写用于管理访问权限的策略（请参阅[Amazon MWAA 基于身份的策略示例](security_iam_id-based-policy-examples.md)）

## 使用身份进行身份验证
<a name="security_iam_authentication"></a>

身份验证是您 AWS 使用身份凭证登录的方式。您必须以 IAM 用户身份进行身份验证 AWS 账户根用户，或者通过担任 IAM 角色进行身份验证。

您可以使用来自身份源的证书 AWS IAM Identity Center （例如（IAM Identity Center）、单点登录身份验证或 Google/Facebook 证书，以联合身份登录。有关登录的更多信息，请参阅《AWS 登录 用户指南》**中的[如何登录您的 AWS 账户](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)。

对于编程访问， AWS 提供 SDK 和 CLI 来对请求进行加密签名。有关更多信息，请参阅*《IAM 用户指南》*中的[适用于 API 请求的AWS 签名版本 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。

### AWS 账户 root 用户
<a name="security_iam_authentication-rootuser"></a>

 创建时 AWS 账户，首先会有一个名为 AWS 账户 *root 用户的*登录身份，该身份可以完全访问所有资源 AWS 服务 和资源。我们强烈建议不要使用根用户进行日常任务。有关要求根用户凭证的任务，请参阅*《IAM 用户指南》*中的[需要根用户凭证的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

### IAM 用户和群组
<a name="security_iam_authentication-iamuser"></a>

*[IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*是对某个人员或应用程序具有特定权限的一个身份。建议使用临时凭证，而非具有长期凭证的 IAM 用户。有关更多信息，请参阅 *IAM 用户指南*[中的要求人类用户使用身份提供商的联合身份验证才能 AWS 使用临时证书进行访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)指定一组 IAM 用户，便于更轻松地对大量用户进行权限管理。有关更多信息，请参阅*《IAM 用户指南》*中的 [IAM 用户使用案例](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)。

### IAM 角色
<a name="security_iam_authentication-iamrole"></a>

*[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*是具有特定权限的身份，可提供临时凭证。您可以通过[从用户切换到 IAM 角色（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)或调用 AWS CLI 或 AWS API 操作来代入角色。有关更多信息，请参阅《IAM 用户指南》**中的[担任角色的方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)。

IAM 角色对于联合用户访问、临时 IAM 用户权限、跨账户访问、跨服务访问以及在 Amazon EC2 上运行的应用程序非常有用。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## 使用策略管理访问
<a name="security_iam_access-manage"></a>

您可以 AWS 通过创建策略并将其附加到 AWS 身份或资源来控制中的访问权限。策略定义了与身份或资源关联时的权限。 AWS 在委托人提出请求时评估这些政策。大多数策略都以 JSON 文档的 AWS 形式存储在中。有关 JSON 策略文档的更多信息，请参阅*《IAM 用户指南》*中的 [JSON 策略概述](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)。

管理员使用策略，通过定义哪个**主体**可以在什么**条件**下对哪些**资源**执行哪些**操作**来指定谁有权访问什么。

默认情况下，用户和角色没有权限。IAM 管理员创建 IAM 策略并将其添加到角色中，然后用户可以担任这些角色。IAM 策略定义权限，与执行操作所用的方法无关。

### 基于身份的策略
<a name="security_iam_access-manage-id-based-policies"></a>

基于身份的策略是您附加到身份（用户、组或角色）的 JSON 权限策略文档。这些策略控制身份可以执行什么操作、对哪些资源执行以及在什么条件下执行。要了解如何创建基于身份的策略，请参阅《IAM 用户指南》**中的[使用客户管理型策略定义自定义 IAM 权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

基于身份的策略可以是*内联策略*（直接嵌入到单个身份中）或*托管策略*（附加到多个身份的独立策略）。要了解如何在托管策略和内联策略之间进行选择，请参阅*《IAM 用户指南》*中的[在托管策略与内联策略之间进行选择](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html)。

### 基于资源的策略
<a name="security_iam_access-manage-resource-based-policies"></a>

基于资源的策略是附加到资源的 JSON 策略文档。示例包括 IAM *角色信任策略*和 Amazon S3 *存储桶策略*。在支持基于资源的策略的服务中，服务管理员可以使用它们来控制对特定资源的访问。您必须在基于资源的策略中[指定主体](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。

基于资源的策略是位于该服务中的内联策略。您不能在基于资源的策略中使用 IAM 中的 AWS 托管策略。

### 访问控制列表 (ACLs)
<a name="security_iam_access-manage-acl"></a>

访问控制列表 (ACLs) 控制哪些委托人（账户成员、用户或角色）有权访问资源。 ACLs 与基于资源的策略类似，尽管它们不使用 JSON 策略文档格式。

Amazon S3 和 Amazon VPC 就是支持的服务示例 ACLs。 AWS WAF要了解更多信息 ACLs，请参阅《*亚马逊简单存储服务开发者指南*》中的[访问控制列表 (ACL) 概述](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)。

### 其他策略类型
<a name="security_iam_access-manage-other-policies"></a>

AWS 支持其他策略类型，这些策略类型可以设置更常见的策略类型授予的最大权限：
+ **权限边界** – 设置基于身份的策略可以授予 IAM 实体的最大权限。有关更多信息，请参阅《 IAM 用户指南》**中的 [IAM 实体的权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。
+ **服务控制策略 (SCPs)**-在中指定组织或组织单位的最大权限 AWS Organizations。有关更多信息，请参阅《AWS Organizations 用户指南》**中的[服务控制策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。
+ **资源控制策略 (RCPs)**-设置账户中资源的最大可用权限。有关更多信息，请参阅《*AWS Organizations 用户指南》*中的[资源控制策略 (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)。
+ **会话策略** – 在为角色或联合用户创建临时会话时，作为参数传递的高级策略。有关更多信息，请参阅《IAM 用户指南》**中的[会话策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)。

### 多个策略类型
<a name="security_iam_access-manage-multiple-policies"></a>

当多个类型的策略应用于一个请求时，生成的权限更加复杂和难以理解。要了解在涉及多种策略类型时如何 AWS 确定是否允许请求，请参阅 *IAM 用户指南*中的[策略评估逻辑](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)。

## 允许用户访问他们自己的权限
<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": "*"
        }
    ]
}
```

# Amazon MWAA 身份和访问权限故障排除
<a name="security_iam_troubleshoot"></a>

可以使用以下信息，以帮助您诊断和修复在使用 Amazon MWAA 和 IAM 时可能遇到的常见问题。

## 我无权在 Amazon MWAA 中执行操作
<a name="security_iam_troubleshoot-no-permissions"></a>

如果 AWS 管理控制台 告诉您您无权执行某项操作，则必须联系管理员寻求帮助。管理员是指提供用户名和密码的人员。

## 我无权执行 iam：PassRole
<a name="security_iam_troubleshoot-passrole"></a>

如果您收到错误，指明您无权执行 `iam:PassRole` 操作，则必须更新策略以允许您将角色传递给 Amazon MWAA。

有些 AWS 服务 允许您将现有角色传递给该服务，而不是创建新的服务角色或服务相关角色。为此，您必须具有将角色传递到服务的权限。

当名为 `marymajor` 的 IAM 用户尝试使用控制台在 Amazon MWAA 中执行操作时，会发生以下示例错误。但是，服务必须具有服务角色所授予的权限才可执行此操作。Mary 不具有将角色传递到服务的权限。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

在这种情况下，必须更新 Mary 的策略以允许她执行 `iam:PassRole` 操作。

如果您需要帮助，请联系您的 AWS 管理员。您的管理员是提供登录凭证的人。

## 我想允许我以外的人访问我 AWS 账户 的 Amazon MWAA 资源
<a name="security_iam_troubleshoot-cross-account-access"></a>

您可以创建一个角色，以便其他账户中的用户或您组织外的人员可以使用该角色来访问您的资源。您可以指定谁值得信赖，可以代入角色。对于支持基于资源的策略或访问控制列表 (ACLs) 的服务，您可以使用这些策略向人们授予访问您的资源的权限。

要了解更多信息，请参阅以下内容：
+ 要了解 Amazon MWAA 是否支持这些功能，请参阅 [Amazon MWAA 如何与 IAM 协同工作](security_iam_service-with-iam.md)。
+ 要了解如何提供对您拥有的资源的访问权限 AWS 账户 ，请参阅 [IAM 用户*指南中的向您拥有 AWS 账户 的另一个 IAM 用户*提供访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)权限。
+ 要了解如何向第三方提供对您的资源的访问[权限 AWS 账户，请参阅 *IAM 用户指南*中的向第三方提供](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)访问权限。 AWS 账户 
+ 要了解如何通过身份联合验证提供访问权限，请参阅《IAM 用户指南》**中的[为经过外部身份验证的用户（身份联合验证）提供访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。
+ 要了解使用角色和基于资源的策略进行跨账户访问之间的差别，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

# Amazon MWAA 如何与 IAM 协同工作
<a name="security_iam_service-with-iam"></a>

Amazon MWAA 使用基于 IAM 身份的策略来授予对 Amazon MWAA 操作和资源的权限。有关您可用于控制对 Amazon MWAA 资源访问权限的自定义 IAM 策略 的推荐示例，请参阅 [访问 Amazon MWAA 环境](access-policies.md)。

要全面了解 Amazon MWAA 和其他 AWS 服务如何与 IAM 配合使用，请参阅 IAM *用户指南中的与 IAM 配合使用的AWS *[服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

## Amazon MWAA 基于身份的策略
<a name="security_iam_service-with-iam-id-based-policies"></a>

通过使用 IAM 基于身份的策略，您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。Amazon MWAA 支持特定的操作、资源和条件键。

以下步骤展示了如何使用 IAM 控制台创建新的 JSON 策略。此策略提供对 Amazon MWAA 资源的只读访问权限。

**使用 JSON 策略编辑器创建策略**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左侧的导航窗格中，选择**策略**。

   如果这是您首次选择**策略**，则会显示**欢迎访问托管式策略**页面。选择**开始使用**。

1. 在页面的顶部，选择**创建策略**。

1. 在**策略编辑器**部分，选择 **JSON** 选项。

1. 输入以下 JSON 策略文档：

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "airflow:ListEnvironments",
           "airflow:GetEnvironment",
           "airflow:ListTagsForResource"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

1. 选择**下一步**。
**注意**  
您可以随时在**可视化**和 **JSON** 编辑器选项卡之间切换。不过，如果您进行更改或在**可视化**编辑器中选择**下一步**，IAM 可能会调整策略结构以针对可视化编辑器进行优化。有关更多信息，请参阅*《IAM 用户指南》*中的[调整策略结构](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure)。

1. 在**查看并创建**页面上，为您要创建的策略输入**策略名称**和**描述**（可选）。查看**此策略中定义的权限**以查看策略授予的权限。

1. 选择**创建策略**可保存新策略。

要了解在 JSON 策略中使用的所有元素，请参阅《IAM 用户指南》** 中的 [IAM JSON 策略元素参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

### 操作
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

JSON 策略的 `Action` 元素描述可用于在策略中允许或拒绝访问的操作。在策略中包含操作以授予执行关联操作的权限。

策略语句必须包含 `Action` 或 `NotAction` 元素。`Action` 元素列出了策略允许的操作。`NotAction` 元素列出了不允许的操作。

为 Amazon MWAA 定义的操作反映了您可以使用 Amazon MWAA 执行的任务。Amazon Detective 中的策略操作具有以下前缀：`airflow:`。

您可以使用通配符（\$1）来指定多个操作。您可以授予对所有以单词（例如 `environment`）结尾的操作的访问权限，而不必单独列出这些操作。

要获得 Amazon MWAA 操作的列表，请参阅*《IAM 用户指南》*中的 [Amazon MWAA 定义的操作](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_mwaa.html#mwaa-actions-as-permissions)。

# Amazon MWAA 基于身份的策略示例
<a name="security_iam_id-based-policy-examples"></a>

要访问 Amazon MWAA 策略，请参阅 [管理对 Amazon MWAA 环境的访问](manage-access.md)。

默认情况下，IAM 用户和角色没有创建或修改 Amazon MWAA 资源的权限。他们也无法使用 AWS 管理控制台 AWS CLI、或 AWS API 执行任务。

IAM 管理员必须创建 IAM 策略，以便为用户和角色授予权限以对所需的指定资源执行特定的 API 操作。然后，管理员必须将这些策略附加到需要这些权限的 IAM 用户或组。

**重要**  
我们建议使用 IAM 角色和临时凭证来提供对 Amazon MWAA 资源的访问权限。避免将权限策略直接附加到 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)
+ [使用 Amazon MWAA 控制台](#security_iam_id-based-policy-examples-console)
+ [允许用户访问他们自己的权限](#security_iam_id-based-policy-examples-view-own-permissions)

## 策略最佳实践
<a name="security_iam_service-with-iam-policy-best-practices"></a>

基于身份的策略确定某个人能否创建、访问或删除您账户中的 Amazon MWAA 资源。这些操作可能会使 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**)-如果 AWS 账户您的场景需要 IAM 用户或根用户，请启用 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)。

## 使用 Amazon MWAA 控制台
<a name="security_iam_id-based-policy-examples-console"></a>

要使用 Amazon MWAA 控制台，用户或角色必须有权访问与 API 中的相应操作相匹配的相关操作。

要访问 Amazon MWAA 策略，请参阅 [管理对 Amazon MWAA 环境的访问](manage-access.md)。

## 允许用户访问他们自己的权限
<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": "*"
        }
    ]
}
```

# Amazon MWAA 的合规性验证
<a name="compliance-validation"></a>

要了解是否属于特定合规计划的范围，请参阅AWS 服务 “[按合规计划划分的范围](https://aws.amazon.com/compliance/services-in-scope/)” ”，然后选择您感兴趣的合规计划。 AWS 服务 有关一般信息，请参阅[AWS 合规计划AWS](https://aws.amazon.com/compliance/programs/)。

您可以使用下载第三方审计报告 AWS Artifact。有关更多信息，请参阅中的 “[下载报告” 中的 “ AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)。

您在使用 AWS 服务 时的合规责任取决于您的数据的敏感性、贵公司的合规目标以及适用的法律和法规。有关您在使用时的合规责任的更多信息 AWS 服务，请参阅[AWS 安全文档](https://docs.aws.amazon.com/security/)。

# Amazon MWAA 的弹性
<a name="disaster-recovery-resiliency"></a>

 AWS 全球基础设施是围绕 AWS 区域 可用区构建的。各区域提供多个在物理上独立且隔离的可用区，这些可用区通过延迟低、吞吐量高且冗余性高的网络连接在一起。利用可用区，您可以设计和操作在可用区之间无中断地自动实现故障转移的应用程序和数据库。与传统的单个或多个数据中心基础设施相比，可用区具有更高的可用性、容错能力和可扩展性。

有关 AWS 区域 和可用区的更多信息，请参阅[AWS 全球基础设施](https://aws.amazon.com/about-aws/global-infrastructure/)。

# Amazon MWAA 中的基础设施安全性
<a name="infrastructure-security"></a>

作为一项托管服务，适用于 Apache Airflow 的亚马逊托管工作流程受全球网络安全的保护 AWS 。有关 AWS 安全服务以及如何 AWS 保护基础设施的信息，请参阅[AWS 云安全](https://aws.amazon.com/security/)。要使用基础设施安全的最佳实践来设计您的 AWS 环境，请参阅 S * AWS ecurity Pillar Well-Architected Fram* ework 中的[基础设施保护](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)。

您可以使用 AWS 已发布的 API 调用通过网络访问亚马逊 MWAA。客户端必须支持以下内容：
+ 传输层安全性协议（TLS）。我们要求使用 TLS 1.2，建议使用 TLS 1.3。
+ 具有完全向前保密（PFS）的密码套件，例如 DHE（临时 Diffie-Hellman）或 ECDHE（临时椭圆曲线 Diffie-Hellman）。大多数现代系统（如 Java 7 及更高版本）都支持这些模式。

# Amazon MWAA 中的配置和脆弱性分析
<a name="configuration-vulnerability-analysis"></a>

配置和 IT 控制由您（我们的客户）共同 AWS 负责。

Amazon MWAA 定期修补和升级环境中的 Apache Airflow。确保使用适合您的访问策略 VPCs。

有关更多详细信息，请参阅以下资源：
+ [Amazon MWAA 的合规性验证](compliance-validation.md)
+ [责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)
+ [Amazon Web Services：安全过程概述](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf)
+ [Amazon MWAA 中的基础设施安全性](infrastructure-security.md)
+ [Amazon MWAA 的安全最佳实践](security-best-practices.md)

# Amazon MWAA 的安全最佳实践
<a name="security-best-practices"></a>

Amazon MWA3 提供了在您开发和实施自己的安全策略时需要考虑的大量安全特征。以下最佳实践是一般指导原则，并不代表完整安全解决方案。这些最佳实践可能不适合环境或不满足环境要求，请将其视为有用的考虑因素而不是惯例。
+ 使用最低许可的权限策略。仅向用户执行任务所需的资源或操作授予权限。
+  AWS CloudTrail 用于监控您账户中的用户活动。
+ 确保 Amazon S3 存储桶策略和对象向关联的 Amazon MWAA 环境中的用户 ACLs 授予将对象放入存储桶的权限。这样可以确保有权向存储桶添加工作流程的用户也拥有在 Airflow 中运行工作流程的权限。
+ 使用与 Amazon MWAA 环境关联的 Amazon S3 存储桶。Amazon S3 存储桶可以是任何名称。请勿在存储桶中存储其他对象，也不要将该存储桶与其他服务一起使用。

## Apache Airflow 中的安全最佳实践
<a name="security-best-practices-for-airflow"></a>

Apache Airflow 不是多租户的。虽然有一些[访问控制措施](https://airflow.apache.org/docs/apache-airflow/2.0.2/security/access-control.html)可以将某些功能限制为特定用户使用，[Amazon MWAA 实施了](access-policies.md#web-ui-access)这些措施，但 DAG 创建者确实可以编写DAGs 可以更改 Apache Airflow 用户权限并与底层元数据库交互的内容。

在亚马逊 MWAA 上使用 Apache Airflow 时，我们建议您执行以下步骤，以确保您的环境的元数据库是安全的。 DAGs 
+ 为具有 DAG 写入权限或能够将文件添加到 Amazon S3 `/dags` 文件夹的不同团队使用不同的环境，前提是可以写入环境的用户也可以访问 [Amazon MWAA 执行角色](mwaa-create-role.md)或 [Apache Airflow 连接](https://airflow.apache.org/docs/apache-airflow/2.0.2/howto/connection.html)访问的任何内容。
+ 请勿提供直接的 Amazon S3 DAGs 文件夹访问权限。取而代之的是，使用 CI/CD 工具写入 DAGs Amazon S3，并通过验证步骤确保 DAG 代码符合团队的安全准则。
+ 阻止用户访问环境的 Amazon S3 存储桶。取而代之的是，使用 DAGs 基于 YAML、JSON 或其他定义文件生成的 DAG 工厂，该文件存储在与您存储的 Amazon MWAA Amazon S3 存储桶不同的位置。 DAGs
+ 在 [Secrets Manager](connections-secrets-manager.md) 中管理密钥 虽然这不会阻止可以写入 DAGs 的用户读取密钥，但它会阻止他们修改您的环境使用的密钥。

### 检测 Apache Airflow 用户权限的更改
<a name="detecting-user-privilege-changes"></a>

你可以使用 CloudWatch Logs Insights 来检测 Apache Airflow 用户权限 DAGs 发生更改的情况。为此，只要您 DAGs 更改了 Apache Airflow 用户权限，您就可以使用 EventBridge 计划规则、Lambda 函数和 L CloudWatch ogs Insights 向 CloudWatch 指标发送通知。

#### 先决条件
<a name="prerequisites"></a>

要完成本节中的步骤，您需要以下满足以下条件：
+ Amazon MWAA 环境启用 `INFO` 日志级别的所有 Apache Airflow 日志类型。有关更多信息，请参阅[访问 Amazon 中的 Airflow 日志 CloudWatch](monitoring-airflow.md)。

**要配置有关 Apache Airflow 用户权限更改的通知，请执行以下操作**

1. [创建一个 Lambda 函数，该函数](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html)针对五个 Amazon MWAA 环境 CloudWatch 日志组（`DAGProcessing`、、、`Scheduler`和）运行以下 Logs Insights 查询字符串。`Task` `WebServer` `Worker`

   ```
   fields @log, @timestamp, @message | filter @message like "add-role" | stats count() by @log
   ```

1. 使用您在@@ [上一步中创建的 Lambda 函数作为 EventBridge 规则的目标，创建按计划运行](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)的规则。使用 cron 或 rate 表达式配置计划程序，使其定期运行。