

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

# AWS 应用工作室的安全性
<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/)的一部分，我们的安全措施的有效性定期由第三方审计员进行测试和验证。要了解适用于 App Studio 的合规计划，请参阅[按合规性计划划分的范围内AWS 服务](https://aws.amazon.com/compliance/services-in-scope/)。
+ **云端安全**-您的责任由您使用的 AWS 服务决定。您还需要对其他因素负责，包括您的数据的敏感性、您组织的要求以及适用的法律法规。

本文档将帮助您了解在使用 App Studio 时如何应用分担责任模型。以下主题向您介绍如何配置 App Studio 以满足您的安全与合规性目标。您还将学习如何使用其他 AWS 服务来帮助您监控和保护您的 App Studio 资源。

**Topics**
+ [安全注意事项和缓解措施](security-considerations-and-mitigations.md)
+ [AWS App Studio 中的数据保护](data-protection.md)
+ [AWS 应用工作室和 AWS Identity and Access Management (IAM)](security-iam.md)
+ [AWS App Studio 合规验证](compliance-validation.md)
+ [AWS 应用工作室的弹性](disaster-recovery-resiliency.md)
+ [AWS App Studio 中的基础设施安全](infrastructure-security.md)
+ [AWS App Studio 中的配置和漏洞分析](vulnerability-analysis-and-management.md)
+ [防止跨服务混淆座席](cross-service-confused-deputy-prevention.md)
+ [AWS App Studio 中的跨区域数据传输](cross-region-data-transfer.md)

# 安全注意事项和缓解措施
<a name="security-considerations-and-mitigations"></a>

## 安全注意事项
<a name="security-considerations"></a>

在处理数据连接器、数据模型和已发布的应用程序时，会出现一些与数据泄露、访问控制和潜在漏洞相关的安全问题。以下列表包括主要的安全问题。

### IAM 角色配置不正确
<a name="security-considerations-improper-role-configuration"></a>

数据连接器的 IAM 角色配置不正确可能会导致未经授权的访问和数据泄露。向数据连接器的 IAM 角色授予过于宽松的访问权限可能会允许未经授权的用户访问和修改敏感数据。

### 使用 IAM 角色执行数据操作
<a name="security-considerations-iam-data-operations"></a>

由于 App Studio 应用程序的最终用户使用连接器配置中提供的 IAM 角色来执行操作，因此这些最终用户可能会访问他们通常无权访问的数据。

### 删除已发布应用程序的数据连接器
<a name="security-considerations-deleting-data-connectors"></a>

删除数据连接器后，关联的机密凭据不会自动从已使用该连接器的已发布应用程序中删除。在这种情况下，如果使用某些连接器发布了应用程序，并且其中一个连接器已从 App Studio 中删除，则已发布的应用程序将继续使用先前存储的连接器凭据运行。值得注意的是，尽管删除了连接器，但已发布的应用程序仍将不受影响并可以运行。

### 在已发布的应用程序上编辑数据连接器
<a name="security-considerations-editing-data-connectors"></a>

编辑数据连接器时，所做的更改不会自动反映在使用该连接器的已发布应用程序中。如果使用某些连接器发布了应用程序，并且其中一个连接器在 App Studio 中进行了修改，则发布的应用程序将继续使用先前存储的连接器配置和凭据。要合并更新的连接器更改，必须重新发布应用程序。在重新发布应用程序之前，它将保持不正确且无法运行，或者不受影响且可以运行，但不会反映最新的连接器修改。

## 安全风险缓解建议
<a name="security-mitigation"></a>

本节列出了避免安全风险的缓解建议，详见前面的 “安全注意事项” 部分。

1. **正确的 IAM 角色配置：**确保按照最小权限原则正确配置数据连接器的 IAM 角色，以防止未经授权的访问和数据泄露。

1. **受限的应用程序访问权限：**仅与有权查看应用程序数据或对应用程序数据执行操作的用户共享您的应用程序。

1. **应用程序发布：**确保在更新或删除连接器时重新发布应用程序。

# AWS App Studio 中的数据保护
<a name="data-protection"></a>

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

出于数据保护目的，我们建议您保护 AWS 账户 凭证并使用 AWS IAM Identity Center 或 AWS Identity and Access Management (IAM) 设置个人用户。这样，每个用户只获得履行其工作职责所需的权限。还建议您通过以下方式保护数据：
+ 对每个账户使用多重身份验证（MFA）。
+ 用于 SSL/TLS 与 AWS 资源通信。我们要求使用 TLS 1.2，建议使用 TLS 1.3。
+ 使用设置 API 和用户活动日志 AWS CloudTrail。有关使用 CloudTrail 跟踪捕获 AWS 活动的信息，请参阅《*AWS CloudTrail 用户指南》*中的[使用跟 CloudTrail 踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+ 使用 AWS 加密解决方案以及其中的所有默认安全控件 AWS 服务。
+ 使用高级托管安全服务（例如 Amazon Macie），它有助于发现和保护存储在 Amazon S3 中的敏感数据。
+ 如果您在 AWS 通过命令行界面或 API 进行访问时需要经过 FIPS 140-3 验证的加密模块，请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息，请参阅《美国联邦信息处理标准（FIPS）第 140-3 版》[https://aws.amazon.com/compliance/fips/](https://aws.amazon.com/compliance/fips/)。

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



## 数据加密
<a name="data-encryption"></a>

App Studio 通过加密静态和传输中的数据来安全地存储和传输数据。

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

静态加密是指通过对存储数据进行加密来保护您的数据免受未经授权的访问。App Studio 默认使用 AWS KMS 密钥提供静态加密，您无需对静态数据加密进行任何其他配置。

App Studio 为您的应用程序安全存储以下数据：源代码、构建构件、元数据和权限信息。

使用使用 AWS KMS 客户托管密钥 (CMK) 加密的数据源时，App Studio 资源将继续使用 AWS 托管密钥进行加密，而加密数据源中的数据则由 CMK 加密。有关在 App Studio 应用程序中使用加密数据源的更多信息，请参阅[将加密数据源与 CMKs](encrypted-data-cmk.md)。

App Studio 使用亚马逊 CloudFront 向您的用户提供您的应用程序。 CloudFront 用于边缘接入点 (POPs)，使用 SSDs 加密的 EBS 卷用于区域边缘缓存 (RECs)。Functi CloudFront ons 中的功能代码和配置始终以加密格式存储 SSDs 在边缘位置 POPs和使用的其他存储位置 CloudFront。

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

传输中加密是指在通信终端节点之间移动数据时，保护您的数据免遭拦截。默认情况下，App Studio 为传输中的数据提供加密。客户与 App Studio 之间以及 App Studio 与其下游依赖项之间的所有通信都使用使用签名版本 4 签名流程签名的 TLS 连接进行保护。所有 App Studio 端点都使用由 AWS Certificate Manager 私有证书颁发机构管理的 SHA-256 证书。

## 密钥管理
<a name="key-management"></a>

App Studio 不支持管理加密密钥。

## 互联网络流量隐私
<a name="inter-network-traffic-privacy"></a>

在 App Studio 中创建实例时，您可以选择存储该实例的数据和资源的 AWS 区域。应用程序构建工件和元数据永远不会离开该 AWS 区域。

但是，请注意以下信息：
+ 由于 App Studio 使用亚马逊 CloudFront 为您的应用程序提供服务，并使用 Lambda @Edge 来管理应用程序的身份验证，因此可以从 CloudFront 边缘站点（可能位于不同的区域）访问有限的身份验证数据、授权数据和应用程序元数据。
+ AWS App Studio 跨 AWS 区域传输数据，以便在服务中启用某些生成式 AI 功能。有关跨区域数据传输所启用的功能、跨区域移动的数据类型以及如何选择退出的更多信息，请参阅[AWS App Studio 中的跨区域数据传输](cross-region-data-transfer.md)。

# AWS 应用工作室和 AWS Identity and Access Management (IAM)
<a name="security-iam"></a>

在 AWS App Studio 中，您可以通过将 IAM Identity Center 中的群组分配给 App Studio 中的相应角色来管理服务中的访问权限和权限。群组成员的权限由分配的角色决定，而不是通过直接在 AWS Identity and Access Management (IAM) 中配置用户、角色或权限来决定。有关在 App Studio 中管理访问权限和权限的更多信息，请参阅[在 App Studio 中管理访问权限和角色](managing-access-and-roles.md)。

App Studio 在出于计费目的验证实例时，以及在连接到 AWS 账户以创建和使用该 AWS 账户中的资源时，会与 IAM 集成。有关将 App Studio 连接到其他 AWS 服务以便在您的应用程序中使用的信息，请参阅[Connect 连接到 AWS 服务](add-connector-services.md)。

在 App Studio 中创建实例时，必须关联一个 AWS 账户作为实例的账单和管理账户。为了启用关键功能，App Studio 还会创建 [IAM 服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)，为该服务提供代表您执行任务所需的权限。

AWS Identity and Access Management (IAM) AWS 服务 可帮助管理员安全地控制对 AWS 资源的访问权限。IAM 管理员控制谁可以*进行身份验证*（登录）和*授权（有权*限）使用 App Studio 资源。您可以使用 IAM AWS 服务 ，无需支付额外费用。

**Topics**
+ [App Studio 基于身份的政策](#security_iam_service-with-iam-id-based-policies)
+ [App Studio 内部基于资源的政策](#security_iam_service-with-iam-resource-based-policies)
+ [App Studio 的政策措施](#security_iam_service-with-iam-id-based-policies-actions)
+ [App Studio 的政策资源](#security_iam_service-with-iam-id-based-policies-resources)
+ [App Studio 的策略条件密钥](#security_iam_service-with-iam-id-based-policies-conditionkeys)
+ [ACLs 在应用工作室中](#security_iam_service-with-iam-acls)
+ [带有 App Studio 的](#security_iam_service-with-iam-tags)
+ [在 App Studio 中使用临时证书](#security_iam_service-with-iam-roles-tempcreds)
+ [App Studio 的跨服务主体权限](#security_iam_service-with-iam-principal-permissions)
+ [App Studio 的服务角色](#security_iam_service-with-iam-roles-service)
+ [App Studio 的服务相关角色](#security_iam_service-with-iam-roles-service-linked)
+ [AWS AWS 应用工作室的托管策略](security-iam-awsmanpol.md)
+ [App Studio 的服务相关角色](appstudio-service-linked-roles.md)
+ [App Studio 基于身份的 AWS 策略示例](security_iam_id-based-policy-examples.md)

在使用 IAM 管理对 App Studio 的访问权限之前，请先了解有哪些 IAM 功能可用于 App Studio。


**您可以在 A AWS pp Studio 中使用的 IAM 功能**  

| IAM 功能 | 应用工作室支持 | 
| --- | --- | 
|  [基于身份的策略](#security_iam_service-with-iam-id-based-policies)  |   是  | 
|  [基于资源的策略](#security_iam_service-with-iam-resource-based-policies)  |   否   | 
|  [策略操作](#security_iam_service-with-iam-id-based-policies-actions)  |   是  | 
|  [策略资源](#security_iam_service-with-iam-id-based-policies-resources)  |   是  | 
|  [策略条件密钥](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   否   | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   否   | 
|  [ABAC（策略中的标签）](#security_iam_service-with-iam-tags)  |   否   | 
|  [临时凭证](#security_iam_service-with-iam-roles-tempcreds)  |   是  | 
|  [主体权限](#security_iam_service-with-iam-principal-permissions)  |   是  | 
|  [服务角色](#security_iam_service-with-iam-roles-service)  |   是  | 
|  [服务关联角色](#security_iam_service-with-iam-roles-service-linked)  |   是  | 

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

## App Studio 基于身份的政策
<a name="security_iam_service-with-iam-id-based-policies"></a>

**支持基于身份的策略：**是

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

通过使用 IAM 基于身份的策略，您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。要了解可在 JSON 策略中使用的所有元素，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素引用](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

### App Studio 基于身份的策略示例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

要查看 App Studio 基于身份的策略示例，请参阅。[App Studio 基于身份的 AWS 策略示例](security_iam_id-based-policy-examples.md)

## App Studio 内部基于资源的政策
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**支持基于资源的策略：**否 

基于资源的策略是附加到资源的 JSON 策略文档。基于资源的策略的示例包括 IAM *角色信任策略*和 Amazon S3 *存储桶策略*。在支持基于资源的策略的服务中，服务管理员可以使用它们来控制对特定资源的访问。对于在其中附加策略的资源，策略定义指定主体可以对该资源执行哪些操作以及在什么条件下执行。您必须在基于资源的策略中[指定主体](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。委托人可以包括账户、用户、角色、联合用户或 AWS 服务。

要启用跨账户访问，您可以将整个账户或其他账户中的 IAM 实体指定为基于资源的策略中的主体。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## App Studio 的政策措施
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**支持策略操作：**是

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

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

要查看 App Studio 操作列表，请参阅《*服务授权参考*[》中的 AWS App Studio 定义的操作](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsappstudio.html#awsappstudio-actions-as-permissions)。

App Studio 中的策略操作在操作前使用以下前缀：

```
appstudio
```

要在单个语句中指定多项操作，请使用逗号将它们隔开。

```
"Action": [
      "appstudio:action1",
      "appstudio:action2"
         ]
```

以下语句列出了 App Studio 中的所有操作：

## App Studio 的政策资源
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**支持策略资源：**是

App Studio 权限仅支持策略`Resource`元素中的通配符 (`*`)。

## App Studio 的策略条件密钥
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**支持特定于服务的策略条件键：**否 

App Studio 不支持策略条件密钥。

## ACLs 在应用工作室中
<a name="security_iam_service-with-iam-acls"></a>

**支持 ACLs：**否 

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

## 带有 App Studio 的
<a name="security_iam_service-with-iam-tags"></a>

**支持 ABAC（策略中的标签）：**否 

App Studio 不支持基于属性的访问控制 (ABAC)。

## 在 App Studio 中使用临时证书
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**支持临时凭证：**是

临时证书提供对 AWS 资源的短期访问权限，并且是在您使用联合身份或切换角色时自动创建的。 AWS 建议您动态生成临时证书，而不是使用长期访问密钥。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的临时安全凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)和[使用 IAM 的。AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)

## App Studio 的跨服务主体权限
<a name="security_iam_service-with-iam-principal-permissions"></a>

**支持转发访问会话（FAS）：**是

 转发访问会话 (FAS) 使用调用主体的权限 AWS 服务，再加上 AWS 服务 向下游服务发出请求的请求。有关发出 FAS 请求时的策略详情，请参阅[转发访问会话](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)。

## App Studio 的服务角色
<a name="security_iam_service-with-iam-roles-service"></a>

**支持服务角色：**是

 服务角色是由一项服务担任、代表您执行操作的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建向 AWS 服务委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

AWS App Studio 对某些功能使用 [IAM 服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)来授予 App Studio 代表你执行任务的权限。设置 App Studio 时，控制台会自动为支持的功能创建服务角色。

**警告**  
更改服务角色的权限可能会中断 App Studio 的功能。仅当 App Studio 提供相关指导时，才能编辑服务角色。

## App Studio 的服务相关角色
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**支持服务关联角色：**是

 服务相关角色是一种链接到的服务角色。 AWS 服务服务可以代入代表您执行操作的角色。服务相关角色出现在您的中 AWS 账户 ，并且归服务所有。IAM 管理员可以查看但不能编辑服务关联角色的权限。

有关创建或管理服务相关角色的详细信息，请参阅[能够与 IAM 搭配使用的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。在表中查找**服务相关角色**列中包含 `Yes` 的表。选择**是**链接以查看该服务的服务相关角色文档。

# AWS AWS 应用工作室的托管策略
<a name="security-iam-awsmanpol"></a>







要向用户、群组和角色添加权限，使用 AWS 托管策略比自己编写策略要容易得多。创建仅为团队提供所需权限的 [IAM 客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)需要时间和专业知识。要快速入门，您可以使用我们的 AWS 托管策略。这些策略涵盖常见使用案例，可在您的 AWS 账户中使用。有关 AWS 托管策略的更多信息，请参阅 *IAM 用户指南*中的[AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

AWS 服务维护和更新 AWS 托管策略。您无法更改 AWS 托管策略中的权限。服务偶尔会向 AWS 托管式策略添加额外权限以支持新特征。此类更新会影响附加策略的所有身份（用户、组和角色）。当启动新特征或新操作可用时，服务最有可能会更新 AWS 托管式策略。服务不会从 AWS 托管策略中移除权限，因此策略更新不会破坏您的现有权限。

此外，还 AWS 支持跨多个服务的工作职能的托管策略。例如，**ReadOnlyAccess** AWS 托管策略提供对所有 AWS 服务和资源的只读访问权限。当服务启动一项新功能时， AWS 会为新操作和资源添加只读权限。有关工作职能策略的列表和说明，请参阅 *IAM 用户指南*中的[适用于工作职能的AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。









## AWS 托管策略： AppStudioServiceRolePolicy
<a name="security-iam-awsmanpol-appstudioservicerolepolicy"></a>

您不能将 `AppStudioServiceRolePolicy` 附加到自己的 IAM 实体。此政策附加到服务相关角色，允许 App Studio 代表您执行操作。有关更多信息，请参阅 [App Studio 的服务相关角色](appstudio-service-linked-roles.md)。



此策略授予的权限允许服务相关角色管理 AWS 资源。

### 权限详细信息
<a name="security-iam-awsmanpol-appstudioservicerolepolicy-permissions-details"></a>

此策略包括以下权限：
+ `logs`-创建 CloudWatch 日志组和日志流。还允许在这些日志组和流中创建日志事件。
+ `secretsmanager`-创建、读取、更新和删除由 App Studio 管理的托管密钥。
+ `sso`-检索应用程序实例。
+ `sso-directory`-检索用户信息并检索群组中的成员列表。

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

****  

```
{
 "Version":"2012-10-17",		 	 	 
 "Statement": [
     {
         "Sid": "AppStudioResourcePermissionsForCloudWatch",
         "Effect": "Allow",
         "Action": [
             "logs:CreateLogGroup",
             "logs:CreateLogStream",
             "logs:PutLogEvents"
         ],
         "Resource": [
             "arn:aws:logs:*:*:log-group:/aws/appstudio/*"
         ],
         "Condition": {
             "StringEquals": {
                 "aws:ResourceAccount": "${aws:PrincipalAccount}"
             }
         }
     },
     {
         "Sid": "AppStudioResourcePermissionsForSecretsManager",
         "Effect": "Allow",
         "Action": [
             "secretsmanager:CreateSecret",
             "secretsmanager:DeleteSecret",
             "secretsmanager:DescribeSecret",
             "secretsmanager:GetSecretValue",
             "secretsmanager:PutSecretValue",
             "secretsmanager:UpdateSecret",
             "secretsmanager:TagResource"
         ],
         "Resource": "arn:aws:secretsmanager:*:*:secret:appstudio-*",
         "Condition": {
             "ForAllValues:StringEquals": {
                 "aws:TagKeys": [
                     "IsAppStudioSecret"
                 ]
             },
             "StringEquals": {
                 "aws:ResourceAccount": "${aws:PrincipalAccount}",
                 "aws:ResourceTag/IsAppStudioSecret": "true"
             }
         }
     },
     {
         "Sid": "AppStudioResourcePermissionsForManagedSecrets",
         "Effect": "Allow",
         "Action": [
             "secretsmanager:DeleteSecret",
             "secretsmanager:DescribeSecret",
             "secretsmanager:GetSecretValue",
             "secretsmanager:PutSecretValue",
             "secretsmanager:UpdateSecret"
         ],
         "Resource": "arn:aws:secretsmanager:*:*:secret:appstudio!*",
         "Condition": {
             "StringEquals": {
                 "aws:ResourceAccount": "${aws:PrincipalAccount}",
                 "secretsmanager:ResourceTag/aws:secretsmanager:owningService": "appstudio"
             }
         }
     },
     {
         "Sid": "AppStudioResourceWritePermissionsForManagedSecrets",
         "Effect": "Allow",
         "Action": [
             "secretsmanager:CreateSecret"
         ],
         "Resource": "arn:aws:secretsmanager:*:*:secret:appstudio!*",
         "Condition": {
             "StringEquals": {
                 "aws:ResourceAccount": "${aws:PrincipalAccount}"
             }
         }
     },
     {
         "Sid": "AppStudioResourcePermissionsForSSO",
         "Effect": "Allow",
         "Action": [
             "sso:GetManagedApplicationInstance",
             "sso-directory:DescribeUsers",
             "sso-directory:ListMembersInGroup"
         ],
         "Resource": "*",
         "Condition": {
             "StringEquals": {
                 "aws:ResourceAccount": "${aws:PrincipalAccount}"
             }
         }
     }
 ]
}
```

------

## App Studio 更新 AWS 了托管政策
<a name="security-iam-awsmanpol-updates"></a>

查看自该服务开始跟踪这些更改以来 App Studio AWS 托管政策更新的详细信息。


| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  [AppStudioServiceRolePolicy](#security-iam-awsmanpol-appstudioservicerolepolicy)：对现有策略的更新  |  App Studio 添加了新的权限，允许在中管理 App Studio 托管的密钥 AWS Secrets Manager。  | 2025 年 3 月 14 日 | 
|  App Studio 开始跟踪更改  |  App Studio 已开始跟踪其 AWS 托管策略的变更。  | 2024 年 6 月 28 日 | 

# App Studio 的服务相关角色
<a name="appstudio-service-linked-roles"></a>

App Studio 使用 [AWS Identity and Access Management (IAM) 服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。服务相关角色是一种独特的 IAM 角色，直接关联到 App Studio。服务相关角色由 App Studio 预定义，包括该服务代表您调用其他 AWS 服务所需的所有权限。

服务相关角色使设置 App Studio 变得更加容易，因为您不必手动添加必要的权限。App Studio 定义了其服务相关角色的权限，除非另有定义，否则只有 App Studio 可以担任其角色。定义的权限包括信任策略和权限策略，以及不能附加到任何其他 IAM 实体的权限策略。

只有在首先删除相关资源后，您才能删除服务关联角色。这样可以保护您的 App Studio 资源，因为您不会无意中移除访问这些资源的权限。

**Topics**
+ [App Studio 的服务相关角色权限](#slr-permissions)
+ [为 App Studio 创建服务相关角色](#create-slr)
+ [编辑 App Studio 的服务相关角色](#edit-slr)
+ [删除 App Studio 的服务相关角色](#delete-slr)

## App Studio 的服务相关角色权限
<a name="slr-permissions"></a>

App Studio 使用名为`AWSServiceRoleForAppStudio`的服务相关角色。这是 App Studio 持续管理 AWS 服务、维护应用程序构建体验所需的服务相关角色。

`AWSServiceRoleForAppStudio`服务相关角色使用以下信任策略，该策略仅信任`appstudio-service.amazonaws.com`服务：

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

****  

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

------

对于权限，`AWSServiceRoleForAppStudio`服务相关角色提供对以下服务的权限：
+ 亚马逊 CloudWatch：发送有关 App Studio 使用情况的日志和指标。
+ AWS Secrets Manager：在 App Studio 中管理连接器的凭据，用于将应用程序连接到其他服务。
+ IAM 身份中心：只读访问权限以管理用户访问权限。

具体而言，授予的`AWSServiceRoleForAppStudio`权限由附加的`AppStudioServiceRolePolicy`托管策略定义。有关托管策略的更多信息（包括其包含的权限），请参阅[AWS 托管策略： AppStudioServiceRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-appstudioservicerolepolicy)。

## 为 App Studio 创建服务相关角色
<a name="create-slr"></a>

您无需手动创建服务关联角色。当您创建 App Studio 实例时，App Studio 会为您创建服务相关角色。

如果您删除此服务相关角色，建议您创建一个 App Studio 实例，以便自动为您创建另一个实例。

尽管不是必需的，但您也可以使用 IAM 控制台或 AWS CLI 通过使用服务名称创建服务相关角色来创建服务相关角色，如前`appstudio-service.amazonaws.com`面显示的信任策略片段所示。有关更多信息，请参阅 *IAM 用户指南* 中的[创建服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html)。

## 编辑 App Studio 的服务相关角色
<a name="edit-slr"></a>

App Studio 不允许您编辑`AWSServiceRoleForAppStudio`服务相关角色。在创建服务相关角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。但是可以使用 IAM 编辑角色说明。有关更多信息，请参阅《IAM 用户指南》**中的[编辑服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除 App Studio 的服务相关角色
<a name="delete-slr"></a>

您无需删除该`AWSServiceRoleForAppStudio`角色。当您删除 App Studio 实例时，App Studio 会自动清理资源并删除与服务相关的角色。

虽然不建议这样做，但您可以使用 IAM 控制台或删除服务相关角色。 AWS CLI 为此，您必须先清理服务相关角色的资源，然后才能将其删除。

**注意**  
如果您尝试删除资源时 App Studio 正在使用该角色，则删除可能会失败。如果发生这种情况，请等待几分钟后重试。

**使用 IAM 手动删除服务关联角色**

1. 从 App Studio 实例中删除应用程序和连接器。

1. 使用 IAM 控制台、IAM CLI 或 IAM API 删除 `AWSServiceRoleForAppStudio` 服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[删除服务关联角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

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

默认情况下，用户和角色无权创建或修改 App Studio 资源。要授予用户对所需资源执行操作的权限，IAM 管理员可以创建 IAM 策略。

要了解如何使用这些示例 JSON 策略文档创建基于 IAM 身份的策略，请参阅《IAM 用户指南》**中的[创建 IAM 策略（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)。

有关 App Studio 定义的操作和资源类型（包括每种资源类型的格式）的详细信息，请参阅《*服务授权参考*》中的 [AWS App Studio 操作、资源和条件密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsappstudio.html)。 ARNs 

**Topics**
+ [策略最佳实践](#security_iam_service-with-iam-policy-best-practices)
+ [使用 App Studio 控制台](#security_iam_id-based-policy-examples-console)
+ [允许用户查看他们自己的权限](#security_iam_id-based-policy-examples-view-own-permissions)
+ [示例 1：允许用户设置 App Studio 实例](#security_iam_id-based-policy-examples-set-up-appstudio-instance)
+ [示例 2：拒绝用户设置 App Studio 实例](#security_iam_id-based-policy-examples-deny-set-up-appstudio-instance)

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

基于身份的策略决定了某人是否可以在您的账户中创建、访问或删除 App Studio 资源。这些操作可能会使 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)。

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

要访问 AWS App Studio 控制台，您必须拥有一组最低权限。这些权限必须允许您在中列出和查看有关 App Studio 资源的详细信息 AWS 账户。如果创建比必需的最低权限更为严格的基于身份的策略，对于附加了该策略的实体（用户或角色），控制台将无法按预期正常运行。

对于仅调用 AWS CLI 或 AWS API 的用户，您无需为其设置最低控制台权限。相反，只允许访问与其尝试执行的 API 操作相匹配的操作。

为确保用户和角色仍然可以使用 App Studio 控制台，还需要将 App Studio `ConsoleAccess` 或`ReadOnly` AWS 托管策略附加到实体。有关更多信息，请参阅《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": "*"
        }
    ]
}
```

## 示例 1：允许用户设置 App Studio 实例
<a name="security_iam_id-based-policy-examples-set-up-appstudio-instance"></a>

以下示例显示了允许角色设置 App Studio 实例的基于身份的策略。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "appstudio:GetAccountStatus",
            "appstudio:GetEnablementJobStatus",
            "appstudio:StartEnablementJob",
            "appstudio:StartRollbackEnablementJob",
            "appstudio:StartTeamDeployment"
        ],
        "Resource": "*"
    }]
}
```

------

## 示例 2：拒绝用户设置 App Studio 实例
<a name="security_iam_id-based-policy-examples-deny-set-up-appstudio-instance"></a>

以下示例显示了一种基于身份的策略，该策略用于拒绝角色设置 App Studio 实例。

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

****  

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

------

# AWS App Studio 合规验证
<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/)。

# AWS 应用工作室的弹性
<a name="disaster-recovery-resiliency"></a>

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

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

除了 AWS 全球基础架构外， AWS App Studio 还提供多项功能来帮助支持您的数据弹性和备份需求。

# AWS App Studio 中的基础设施安全
<a name="infrastructure-security"></a>

作为一项托管服务， AWS App Studio 受[亚马逊网络服务：安全流程概述白皮书中描述的 AWS 全球网络安全](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf)程序的保护。

您可以使用 AWS 已发布的 API 调用通过网络访问 App Studio。客户端必须至少支持传输层安全 (TLS) 1.2，但建议使用 TLS 1.3。客户端还必须支持具有完全向前保密 (PFS) 的密码套件，例如 DHE (Ephemeral Diffie-Hellman) 或 ECDHE (Elliptic Curve Ephemeral Diffie-Hellman)。大多数现代系统（如 Java 7 及更高版本）都支持这些模式。

此外，必须使用访问密钥 ID 和与 IAM 主体关联的秘密访问密钥来对请求进行签名。或者，您可以使用 [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html)（AWS STS）生成临时安全凭证来对请求进行签名。

# AWS App Studio 中的配置和漏洞分析
<a name="vulnerability-analysis-and-management"></a>

配置和 IT 控制由您（我们的客户）共同 AWS 负责。有关更多信息，请参阅[责任 AWS 共担模型](https://aws.amazon.com/compliance/shared-responsibility-model/)。

# 防止跨服务混淆座席
<a name="cross-service-confused-deputy-prevention"></a>

混淆代理问题是一个安全性问题，即不具有操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。在中 AWS，跨服务模仿可能会导致混乱的副手问题。一个服务（*呼叫服务*）调用另一项服务（*所谓的服务*）时，可能会发生跨服务模拟。可以操纵调用服务，使用其权限以在其他情况下该服务不应有访问权限的方式对另一个客户的资源进行操作。为防止这种情况， AWS 提供可帮助您保护所有服务的数据的工具，而这些服务中的服务主体有权限访问账户中的资源。

我们建议在资源策略中使用[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)和[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)全局条件上下文密钥来限制为资源提供其他服务的权限。如果您只希望将一个资源与跨服务访问相关联，请使用。`aws:SourceArn`如果您想允许该账户中的任何资源与跨服务使用操作相关联，请使用。`aws:SourceAccount`

防范混淆代理问题最有效的方法是使用 `aws:SourceArn` 全局条件上下文键和资源的完整 ARN。如果不知道资源的完整 ARN，或者正在指定多个资源，请针对 ARN 未知部分使用带有通配符字符（`*`）的 `aws:SourceArn` 全局上下文条件键。例如 `arn:aws:servicename:*:123456789012:*`。

如果 `aws:SourceArn` 值不包含账户 ID，例如 Amazon S3 存储桶 ARN，您必须使用两个全局条件上下文键来限制权限。

`aws:SourceArn` 的值必须为 ResourceDescription。

以下示例演示如何使用 中的 `aws:SourceArn` 和 `aws:SourceAccount` 全局条件上下文键来防范混淆代理问题。

# AWS App Studio 中的跨区域数据传输
<a name="cross-region-data-transfer"></a>

AWS App Studio 跨 AWS 区域传输数据，以便在服务中启用某些生成式 AI 功能。本主题包含有关跨区域数据传输所启用的功能、跨区域移动的数据类型以及如何选择退出的信息。

以下功能由跨区域数据传输启用，如果您选择退出，则无法在您的实例中使用这些功能：

1. 使用 AI 创建应用程序，用于通过使用自然语言描述您的应用程序并为您创建资源来启动应用程序构建。

1. 应用工作室中的 AI 聊天用于询问有关应用程序构建、发布和共享的问题。

以下数据跨区域传输：

1. 前面描述的功能中的提示或用户输入。

要选择退出跨区域数据传输及其启用的功能，请使用以下步骤从控制台填写退出请求表：

1. 在以下位置打开 App Studio 控制台[https://console.aws.amazon.com/appstudio/](https://console.aws.amazon.com/appstudio/)。

1. **选择退出数据传输**。

1. 输入您的 AWS 账户 ID，并提供您的电子邮件地址。

1. 选择**提交**。

1. 提交后，您的选择退出跨区域数据传输的请求将得到处理，最长可能需要 60 天。