

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

# 管理员指南
<a name="administrator-guide"></a>

本管理员指南为技术受众提供了有关如何进一步定制 AWS 产品并与研究与工程工作室集成的其他说明。

**Topics**
+ [密钥管理](secrets-management.md)
+ [成本监测和控制](cost-management.md)
+ [成本分析仪表板](cost-analysis-dashboard.md)
+ [会话管理](evdi.md)
+ [环境管理](environment-management.md)

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

研究与工程工作室使用以下秘密进行维护 AWS Secrets Manager。在创建环境期间，RES 会自动创建密钥。管理员在创建环境时输入的密钥作为参数输入。


| 密钥名称 |  说明  |  已生成的 RES | 管理员已输入 | 
| --- | --- | --- | --- | 
| <envname>-sso-client-secret | 环境单点登录 OAuth2 客户端密钥 | ✓ |  | 
| <envname>-vdc-client-secret | VDC ClientSecret | ✓ |  | 
| <envname>-vdc-client-id | VDC ClientId | ✓ |  | 
| <envname>-vdc-gateway-certificate-private-key | 域的自签名证书私钥 | ✓ |  | 
| <envname>-vdc-gateway-certificate-certificate | 域的自签名证书 | ✓ |  | 
| <envname>-cluster-manager-client-secret | 集群管理器 ClientSecret | ✓ |  | 
| <envname>-cluster-manager-client-id | 集群管理器 ClientId | ✓ |  | 
| <envname>-external-private-key | 域的自签名证书私钥 | ✓ |  | 
| <envname>-external-certificate | 域的自签名证书 | ✓ |  | 
| <envname>-internal-private-key | 域的自签名证书私钥 | ✓ |  | 
| <envname>-internal-certificate | 域的自签名证书 | ✓ |  | 
| <envname>-directoryservice-ServiceAccountUserDN |  ServiceAccount 用户的唯一判别名 (DN) 属性。 | ✓ |  | 

DynamoDB 的`<envname>-cluster-settings`表中包含以下秘密 ARN 值：


| Key | 来源 | 
| --- | --- | 
| identity-provider.cognito.sso\$1client\$1secret |  | 
| vdc.dcv\$1connection\$1gateway.certificate.certificate\$1secret\$1arn | 堆栈 | 
| vdc.dcv\$1connection\$1gateway.certificate.private\$1key\$1secret\$1arn | 堆栈 | 
| cluster.load\$1balancers.internal\$1alb.certificates.private\$1key\$1secret\$1arn | 堆栈 | 
| directoryservice.root\$1username\$1secret\$1arn |  | 
| vdc.client\$1secret | 堆栈 | 
| cluster.load\$1balancers.external\$1alb.certificates.certificate\$1secret\$1arn | 堆栈 | 
| cluster.load\$1balancers.internal\$1alb.certificates.certificate\$1secret\$1arn | 堆栈 | 
| directoryservice.root\$1password\$1secret\$1arn |  | 
| cluster.secretsmanager.kms\$1key\$1id |  | 
| cluster.load\$1balancers.external\$1alb.certificates.private\$1key\$1secret\$1arn | 堆栈 | 
| cluster-manager.client\$1secret |  | 

# 成本监测和控制
<a name="cost-management"></a>

**注意**  
中不支持将研究和工程工作室项目关联到 AWS Budgets 。 AWS GovCloud (US)

通过AWS Cos [t Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) 创建[预算](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-create.html)以帮助管理成本。价格可能会发生变化。如需了解全部详情，请参阅每项的定价网页[AWS 本产品中的服务](architecture-overview.md#aws-services-in-this-product)。

为了帮助进行成本跟踪，您可以将 RES 项目与在其中创建的预算相关联 AWS Budgets。您首先需要激活账单成本分配标签内的环境标签。

1. 登录 AWS 管理控制台并打开 B [AWS illing and Cost Management 控制台](https://console.aws.amazon.com/costmanagement/home)。

1. 选择**成本分配标签**。

1. 搜索并选择`res:Project`和`res:EnvironmentName`标签。

1. 选择**激活**。

![\[激活成本分配标签\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-costtags.png)


**注意**  
部署后，RES 标签最多可能需要一天时间才会出现。

要为 RES 资源创建预算，请执行以下操作：

1. 在账单控制台中，选择**预算**。

1. 选择**创建预算**。

1. 在**预算设置**下，选择**自定义（高级）**。

1. 在**预算类型**下，选择**成本预算-推荐**。

1. 选择**下一步**。  
![\[选择预算类型\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-createbudget1-5.png)

1. 在**详细信息**下，为您的**预算输入一个有意义的预算名称**，以将其与账户中的其他预算区分开来。例如 `<EnvironmentName>-<ProjectName>-<BudgetName>`。

1. 在**设置预算金额**下，输入项目的预算金额。

1. 在**预算范围**下，选择**筛选特定 AWS 成本维度**。

1. 选择 **添加筛选条件**。

1. 在**维度**下，选择**标签**。

1. 在 “**标签**” 下，选择 “**RES:** Project 
**注意**  
标签和值最多可能需要两天时间才能变为可用。项目名称可用后，您就可以创建预算。

1. 在 “**值**” 下，选择项目名称。

1. 选择 “**应用筛选条件**”，将项目筛选器附加到预算。

1. 选择**下一步**。  
![\[设置预算范围\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-budgets-04.png)

1. （可选。） 添加警报阈值。

1. 选择**下一步**。

1. （可选。） 如果配置了警报，请使用**附加操作**为警报配置所需的操作。

1. 选择**下一步**。

1. 查看预算配置并确认在 “**其他预算参数**” 下设置了正确的标签。

1. 选择**创建预算**。

现在，预算已创建，您可以为项目启用预算。要为项目开启预算，请参阅[编辑项目](edit-project.md)。如果超出预算，虚拟桌面将被禁止启动。如果在启动台式机时超出预算，则该台式机将继续运行。

![\[超出预算\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-budgets-exceeded.png)


如果您需要更改预算，请返回控制台编辑预算金额。更改最多可能需要十五分钟才能在 RES 中生效。或者，您可以编辑项目以禁用预算。

# 成本分析仪表板
<a name="cost-analysis-dashboard"></a>

成本分析仪表板允许 RES 管理员从 RES 门户监控一段时间内的项目预算和项目成本。可以在项目层面筛选成本。

**Topics**
+ [先决条件](#cost-analysis-dashboard-prerequisites)
+ [带有预算分配图表的项目](#cost-analysis-dashboard-projects-chart)
+ [一段时间的成本分析图表](#cost-analysis-dashboard-over-time)
+ [下载 CSV](#cost-analysis-dashboard-download-csv)

## 先决条件
<a name="cost-analysis-dashboard-prerequisites"></a>

要使用研究与工程工作室的成本控制面板，您必须先执行以下操作：
+ [创建项目](create-project.md).
+ 在 B [AWS illing and Cost Management 控制台](https://console.aws.amazon.com/costmanagement/home)中创建[预算](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-create.html)。
+ 将预算附加到项目中（参见[编辑项目](edit-project.md)）。
+ 为部署了新 RES 的账户激活成本分析图表。为此，请按照以下步骤操作：

  1. 为您创建的项目部署 [VDI](virtual-desktops.md)。这会在 Cos [t Ex AWS plorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) 中配置`res:Project`标签，这最多可能需要 24 小时。

  1. 创建标签后，**启用标签**按钮即被激活。在 Cost Explorer 中选择按钮以激活标签。此过程可能还需要 24 小时。  
![\[成本分析入职；应采取的步骤\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-cost-analysis-onboarding.png)

## 带有预算分配图表的项目
<a name="cost-analysis-dashboard-projects-chart"></a>

“**已分配预算的项目**” 图表显示 RES 环境中已分配预算的项目的预算状态。默认情况下，该图表按预算金额显示前 5 个项目。您可以在 “**筛选显示的数据**” 下拉列表中选择特定的项目，该下拉列表会加载预算分配的项目的完整列表。

![\[该图表显示了处于分配预算状态的项目，包括支出金额、超出金额和剩余金额\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-projects-budget-assigned.png)


该图表以美元货币显示每个预算的支出、剩余和超额金额。将鼠标悬停在条形上方可显示每个类别的确切美元金额。您也可以分别选择右上角的**查看项目和创建项目**按钮来打开 “**项目” 和 “创建**项目” 页面。

![\[该图表显示了具有已分配预算状态的项目和一个项目的弹出详细信息\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-projects-budget-dropdown.png)


## 一段时间的成本分析图表
<a name="cost-analysis-dashboard-over-time"></a>

**一段时间的成本分析**图表显示了指定时间段内按项目划分的成本明细。默认情况下，图表显示过去 6 个月中每个月的数据。它以您选择的**粒度**显示选定**时间范围内**按总成本排列的前 5 个项目。除前五名外，所有其他入选项目都汇总在 “**其他**” 类别下。

![\[显示选定时间范围内的成本分析的图表\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-cost-analysis-over-time.png)


### 筛选条件
<a name="cost-analysis-dashboard-over-time-filters"></a>

您可以按项目、时间范围和粒度进行筛选，以自定义一**段时间内的成本分析**图表视图。如果选择了任何无效的过滤器组合，则会弹出一个模态窗口，让您可以选择恢复到先前的配置或接受更新后的过滤器组合的建议。

**Project**

当你选择 “**筛选显示的数据”** 下拉列表时，你会看到当前 RES 环境中项目的完整列表。您会看到项目名称，项目代码显示在下面。

![\[显示选定要显示的项目的筛选器设置的详细信息\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-cost-analysis-filter-modal.png)


**指定时间范围**

在指定日期**范围时，可以选择使用绝对****范围或相对**范围。选择相对范围时，将使用完整的时间单位计算日期。例如，如果您在 2025 年 2 月选择 “**过去 6 个月**” 选项，则时间范围将为 8/1/24-1/31/25。

![\[允许选择相对时间范围的弹出窗口的详细信息\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-cost-analysis-time-range1.png)


![\[允许选择绝对时间范围的弹出窗口的详细信息\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-cost-analysis-time-range2.png)


**粒度**

您可以选择按每**月**、**每天**或**每小时**的粒度查看数据。**每小时**粒度仅支持最多 14 天的日期范围。**每日**粒度仅支持最多 14 个月的日期范围。

![\[允许选择时间范围粒度的弹出窗口的详细信息\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-cost-analysis-granularity.png)


## 下载 CSV
<a name="cost-analysis-dashboard-download-csv"></a>

要导出当前的成本分析视图，请选择 “**随时间变化成本分析**” 图表右上角的 “**下载 CSV**”。下载的 CSV 包含每个选定项目在指定时间段内的成本信息，以及按项目和时间段划分的成本总额。

![\[已下载的 CSV 文件已在电子表格应用程序中打开\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-cost-analysis-download-csv.png)


# 会话管理
<a name="evdi"></a>

会话管理为开发和测试会话提供了灵活的交互式环境。作为管理用户，您可以允许用户在其项目环境中创建和管理交互式会话。

**Topics**
+ [控制面板](dashboard.md)
+ [会话](sessions.md)
+ [软件堆栈 () AMIs](software-stacks.md)
+ [调试](debug.md)
+ [桌面设置](desktop-settings.md)

# 控制面板
<a name="dashboard"></a>

![\[会话管理控制面板\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/virtualdesktopdashboard.jpg)


会话管理控制面板让管理员可以快速查看：

1. 实例类型

1. 会话状态

1. 基础操作系统

1. Projects

1. 可用区

1. 软件堆栈

此外，管理员还可以：

1.  刷新仪表板以更新信息。

1. 选择 “**查看会话**” 以导航到 “会话”。

# 会话
<a name="sessions"></a>

会话显示在研究与工程工作室中创建的所有虚拟桌面。在 “会话” 页面中，您可以筛选和查看会话信息或创建新会话。

![\[管理员控制台的会话页面，带有显示功能的带编号的注释\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-sessions.jpg)


1. 使用该菜单按在指定时间范围内创建或更新的会话筛选结果。

1. 选择一个会话，然后使用 “操作” 菜单执行以下操作：

   1. 恢复会话

   1.  Stop/Hibernate 会话

   1. 强制 Stop/Hibernate 会话

   1. 重新启动会话-重新启动所选会话。此操作也适用于处于错误状态的会话，允许管理员恢复出错的会话。 VDIs

   1. 终止会话

   1. 强制终止会话

   1. 会话 Health

   1. 创建软件堆栈

1.  选择 “**创建会话**” 以创建新会话。

1. 按名称搜索会话，并按状态和操作系统进行筛选。

1. 选择会**话名称**以查看更多详细信息。

## 创建会话
<a name="create-session"></a>

1. 选择 “**创建会话**”。“启动新虚拟桌面” 模式打开。

1. 输入新会话的详细信息。

1. （可选。） 打开 “**显示高级选项”** 以提供更多详细信息，例如子网 ID 和 DCV 会话类型。

1. 选择**提交**。  
![\[管理员控制台页面的详细信息，其中包含需要填写的字段以启动新的虚拟桌面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-createsession.jpg)

## 会话详情
<a name="session-details"></a>

从 “会**话**” 列表中，选择**会话名称**以查看会话详细信息。

![\[管理员控制台页面，可查看会话详情\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-viewsessiondetails.jpg)


# 软件堆栈 () AMIs
<a name="software-stacks"></a>

在软件堆栈页面上，您可以配置 Amazon 系统映像 (AMIs) 或管理现有映像。

![\[软件将带有编号注释的管理员控制台页面堆叠在一起\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-softwarestackspage-2026.03.png)


1. 要搜索现有的软件堆栈，请使用操作系统下拉列表按操作系统进行筛选。

1. 选择软件堆栈的名称以查看有关堆栈的详细信息。

1. 选择软件堆栈旁边的单选按钮，然后使用**操作**菜单编辑堆栈并将堆栈分配给项目。

1. 选择 “**注册软件堆栈**” 按钮以创建新堆栈。

## 注册新的软件堆栈
<a name="register-stack-project"></a>

使用 “**注册软件堆栈**” 按钮可以创建新堆栈：

**注意**  
您可以使用未加密的 Systems Manager 参数作为软件堆栈 ID 的别名。  
Systems Manager 参数需要以下标签才能让 RES 访问它们：  
键：`res:EnvironmentName`，值：`<your RES environment name>`
键：`res:ModuleName`，值：`virtual-desktop-controller`

1. 选择 “**注册软件堆栈**”。

1. 输入新软件堆栈的详细信息，包括名称、描述、AMI ID 和操作系统。

1. （可选）使用**允许的实例类型**字段指定该软件堆栈允许使用的实例系列或类型。您可以输入实例系列（例如`t3`）或特定的实例大小（例如`t3.xlarge`）。

1. 选择**提交**。  
![\[管理员控制台弹出页面，可让您注册新的软件堆栈\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-register-new-software-stack.png)

## 为项目分配软件堆栈
<a name="assign-stack-project"></a>

创建新的软件堆栈时，可以将堆栈分配给项目。但是，如果您需要在初始创建后将堆栈添加到项目中，请执行以下操作：

**注意**  
您只能将软件堆栈分配给您所属的项目。

1. 在**软件堆栈**页面上，选择要添加到项目的软件堆栈对应的单选按钮。

1. 选择**操作**。

1. 选择**编辑**。

1. 使用 “**项目**” 下拉列表选择项目。  
![\[管理员控制台显示用于更新项目软件堆栈的字段\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-update-software-stack.png)

1. 选择**提交**。

您也可以从堆栈详细信息页面编辑软件堆栈。

## 修改软件堆栈的 VDI 实例列表
<a name="software-stack-vdi-instance-list"></a>

对于每个注册的软件堆栈，您可以选择允许的实例系列和类型。每个软件堆栈的选项列表按**桌面设置**中定义的选项进行筛选。您可以在那里找到并修改全局**允许的实例系列和类型**。

![\[管理员控制台页面在会话管理下显示桌面设置\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-vdi-instance-list1.png)


**要编辑软件堆栈的 “**允许的实例系列和类型**” 属性，请执行以下操作：**

1. 在**软件堆栈**页面上，选择软件堆栈的单选按钮。

1. 选择**操作**，然后选择**编辑堆栈**。

1. 从 “**允许的实例系列和类型” 下的下拉列表中选择所需的实例系列和类型**。  
![\[更新软件堆栈弹出窗口，允许您编辑允许的实例系列和类型\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-vdi-instance-list2.png)

1. 选择**提交**。

**注意**  
如果全局**允许的实例系列和类型**集包括一个实例系列和该系列中的一个实例类型（例如`t3`和`t3.large`），则软件堆栈的 “**允许的实例系列和类型**” 属性的可用选项将仅包括该实例系列。

**重要**  
在环境级别从允许列表中删除实例 type/family 后，该实例应自动从所有软件堆栈中删除。
 types/families 在环境级别添加的实例不会自动添加到软件堆栈中。

## 查看软件堆栈详细信息
<a name="view-stack-details"></a>

在**软件堆栈**页面上，选择软件堆栈名称以查看其详细信息。您也可以选择软件堆栈的单选按钮，选择**操作**并选择**编辑**来编辑软件堆栈。

## VDI 租赁支持
<a name="vdi-tenancy-support"></a>

注册新的软件堆栈或编辑现有软件堆栈时，可以从该软件堆栈中选择已 VDIs 启动的软件堆栈的租约。支持以下三种租约：
+ 共享（默认）- VDIs 使用共享硬件实例运行 
+ 专用实例- VDIs 使用专用实例运行 
+ 专用主机- VDIs 使用专用主机运行 

![\[管理员控制台弹出页面，可让您选择要启动的租赁类型 VDIs\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-vdi-tenancy-support1.png)


选择专用主机租赁类型时，还必须选择租赁关联和目标主机类型。支持以下目标主机类型：
+ 主机资源组-在 L AWS icense Manager 中创建的主机资源组 
+ 主机 ID-特定的主机 ID 

![\[管理员控制台弹出页面，可让您选择要启动的租户相关性 VDIs\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-vdi-tenancy-support2.png)


![\[管理员控制台弹出页面，允许您选择要启动的目标主机类型 VDIs\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-vdi-tenancy-support3.png)


*要指定您在使用专用主机租赁启动 VDIs 时所需的任何自行管理许可证，请按照关联[自管理许可证和 License Manager AWS 用户指南将这些 AMIs许可证与您的 AMI 相关联](https://docs.aws.amazon.com/license-manager/latest/userguide/license-rules.html#ami-associations)。*

## 添加 Rocky Linux 9 软件堆栈
<a name="add-rocky-linux9-stack"></a>

RES 没有适用于 Rocky Linux 9 的默认软件堆栈，因此本节提供了有关使用哪个 Rocky AMI 以及如何使用它的建议。

1. 登录 AWS 管理控制台，然后转到 EC2 控制台中的 [AMI 目录页面](https://console.aws.amazon.com/ec2/home#AMICatalog)。

1. 在 **AWS Marketplace** 选项卡 AMIs 下搜索名为 **Rocky Linux 9**。

1. **从 **Rocky Linux 中选择名为 Rocky Linux 9（官方）-x86\$164** 的 AMI。**  
![\[屏幕截图显示了 Rocky Linux 9 AMI 在 AMI 目录中的搜索结果\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-rocky-linux9.png)

1. 选择后，选择 “**立即订阅**”。

1. 向上滚动，然后复制所**选 AMI 的 AMI** ID。  
![\[屏幕截图显示了带有所选 AMI ID 的 AMI 目录\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-ami-catalog.png)

1. 前往 RES 门户，使用此 AMI 在 “软件堆栈” 页面下注册新的**软件堆栈**。

# 调试
<a name="debug"></a>

调试面板显示与虚拟桌面相关的消息流量。您可以使用此面板来观察主机之间的活动。“虚拟桌面主机” 选项卡显示特定于实例的活动，“虚拟桌面会话” 选项卡显示正在进行的会话活动。

![\[调试面板\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-evdi-debug-01.png)


# 桌面设置
<a name="desktop-settings"></a>

您可以使用 “桌面设置” 页面来配置与虚拟桌面关联的资源。

![\[桌面设置\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-virtual-desktop-settings.png)


**一般性问题**

通过 “**常规**” 选项卡可以访问以下设置：

**QUIC**  
启用 QUIC，改用 TCP 作为所有虚拟桌面的默认流式传输协议。

**默认 DCV 会话类型**  
用于所有虚拟桌面的默认 DCV 会话类型。此设置不适用于先前创建的桌面。这仅适用于实例类型和操作系统支持虚拟或控制台会话类型的情况。

**每个项目的每个用户默认允许的会话数**  
每个项目每个用户允许的 VDI 会话数的默认值。

**DCV 会话令牌到期**  
DCV 会话令牌保持有效的持续时间。令牌过期后，用户必须从门户网站重新下载 DCV 连接文件才能继续访问其虚拟桌面会话。可用选项如下：  
+ 1,440 分钟（1 天）
+ 10,080 分钟（7 天）
+ 43,200 分钟（30 天）

![\[桌面设置中的 DCV 会话令牌过期设置\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/dcv-settings-form.png)


**服务器**

通过 “**服务器**” 选项卡可以访问以下设置：

**DCV 会话空闲超时**  
在此时间之后，DCV 会话将自动断开。这不会更改桌面会话的状态，只会从 DCV 客户端或 Web 浏览器关闭会话。

**空闲超时警告**  
在此时间之后，将向客户端发出空闲警告。

**CPU 利用率阈值**  
要视为空闲的 CPU 使用率。

**最大根卷大小**  
虚拟桌面会话中根卷的默认大小。

**允许的实例类型**  
可以为此 RES 环境启动的实例系列和大小列表。均接受实例系列和实例大小组合。例如，如果您指定 “m7a”，则所有大小的 m7a 系列都可作为 VDI 会话启动。如果您指定 “m7a.24xlarge”，则只有 m7a.24xlarge 可以作为 VDI 会话启动。此列表会影响环境中的所有项目。

![\[桌面设置\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-virtual-desktop-settings2.png)


# 环境管理
<a name="environment-management"></a>

在 Research and Engineering Studio 的 “环境管理” 部分，管理用户可以为其研究和工程项目创建和管理隔离环境。这些环境可以包括计算资源、存储和其他必要的组件，所有这些都位于安全的环境中。用户可以配置和自定义这些环境以满足其项目的特定要求，从而更轻松地对解决方案进行实验、测试和迭代，而不会影响其他项目或环境。

**Topics**
+ [环境状态](environment-status.md)
+ [环境设置](environment-settings.md)
+ [Users](users.md)
+ [组](groups.md)
+ [Projects](projects.md)
+ [权限策略](permission-profiles.md)
+ [文件系统](file-system.md)
+ [快照管理](snapshots.md)
+ [Amazon S3 存储桶](S3-buckets.md)

# 环境状态
<a name="environment-status"></a>

“**环境状态**” 页面显示产品中已部署的软件和主机。它包括诸如软件版本、模块名称和其他系统信息之类的信息。

![\[环境状态页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-environmentstatus.jpg)


# 环境设置
<a name="environment-settings"></a>

**环境设置**页面显示产品配置的详细信息，例如：
+ General

  您可以编辑门户网站的标题和副标题，并向门户网站登录页面添加自定义链接。要配置自定义链接，请执行以下操作：

  1. 导航到 “**环境管理**” > **“环境设置”**。

  1. 在 “**常规**” 选项卡下，选择 “**编辑”**。

  1. 在 “**自定义链接**” 部分，选择 “**添加链接**”。

  1. 为要在登录页面上显示的每个链接输入**标题**和 **URL**。

  1. 选择 **Submit (提交)** 可保存您的更改。

  自定义链接显示在门户网站登录页面上，允许管理员将用户引导至内部文档、支持页面或可接受的使用政策等资源。  
![\[环境设置中的自定义链接配置\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/web-links-edit-form.png)
+ 身份提供者

  显示诸如单点登录状态之类的信息。
+ Network

  显示 VPC ID、访问前缀列表 IDs 。
+ 目录服务

  显示用户名和密码的活动目录设置和服务帐户密钥管理器 ARN。

# Users
<a name="users"></a>

从您的活动目录同步的所有用户都将显示在 “用户” 页面上。在配置产品期间，用户由群集管理员用户同步。有关初始用户配置的更多信息，请参阅[配置指南](configuration-guide.md)。

**注意**  
管理员只能为活跃用户创建会话。默认情况下，所有用户在登录产品环境之前都将处于非活动状态。如果用户处于非活动状态，请在为他们创建会话之前要求他们登录。

![\[Users\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-users.jpg)


在 “**用户**” 页面上，您可以：

1. 搜索用户。

1. 选择用户名后，使用 “**操作**” 菜单可以：

   1. 设置为管理员用户 

   1. 禁用用户

# 组
<a name="groups"></a>

从活动目录同步的所有群组都显示在 “群组” 页面上。有关组配置和管理的更多信息，请参阅[配置指南](configuration-guide.md)。

![\[组\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-groups.jpg)


在 “**群组**” 页面上，您可以：

1. 搜索用户组。

1. 选择用户组后，使用 “**操作**” 菜单禁用或启用该群组。

1. 选择用户组后，您可以展开屏幕底部的 “**用户**” 窗格以查看该组中的用户。

# Projects
<a name="projects"></a>

项目构成了虚拟桌面、团队和预算的界限。创建项目时，需要定义其设置，例如名称、描述和环境配置。项目通常包括一个或多个环境，可以对其进行自定义以满足项目的特定要求，例如计算资源的类型和大小、软件堆栈和网络配置。

**Topics**
+ [查看项目](view-projects.md)
+ [创建项目](create-project.md)
+ [编辑项目](edit-project.md)
+ [禁用项目](disable-project.md)
+ [删除项目](delete-project.md)
+ [在项目中添加或移除标签](tag-project.md)
+ [查看与项目关联的文件系统](view-project-file-systems.md)
+ [添加启动模板](project-launch-template.md)

# 查看项目
<a name="view-projects"></a>

![\[Projects\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-projects.jpg)


“项目” 仪表板提供了可供您使用的项目列表。在 “项目” 仪表板中，您可以：

1. 您可以使用搜索字段来查找项目。

1. 选择项目后，您可以使用 “**操作” 菜单执行以下操作**：

   1. 编辑项目

   1. 禁用或启用项目

   1. 更新项目标签

   1. 删除项目

1. 您可以选择 “**创建项目**” 来创建新项目。

# 创建项目
<a name="create-project"></a>

1. 选择**创建项目**。

1. 输入项目详细信息。

   项目 ID 是一个资源标签，可用于跟踪中的成本分配 AWS Cost Explorer Service。有关更多信息，请参阅[激活用户定义的成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html)。
**重要**  
项目 ID 在创建后无法更改。

   有关**高级选项**的信息，请参阅[添加启动模板](project-launch-template.md)。

1. （可选）为项目开启预算。有关预算的更多信息，请参阅[成本监测和控制](cost-management.md)。

1. 主目录文件系统可以将共享主文件系统（默认）、EFS 用 FSx 于 Lustre、 FSx NetApp ONTAP 或 EBS 卷存储。

    FSx 适用于 Lustre 和 FSx NetApp ONTAP 的共享主文件系统 EFS 可以在多个项目之间共享。 VDIs但是，EBS 卷存储选项将要求该项目中的每个 VDI 都有自己的主目录，该目录不在其他项目 VDIs 或项目之间共享。您也可以从单个 FSx NetApp ONTAP 文件系统加载多个卷。  
![\[使用资源配置创建新项目\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-create-new-project.png)

1. 为用户、组或两者分配相应的角色（“项目成员” 或 “项目所有者”）。[默认权限配置文件](permission-matrix.md)有关每个角色可以采取的操作，请参阅。

1. 选择**提交**。

# 编辑项目
<a name="edit-project"></a>

1. 在项目列表中选择一个项目。

1. 从 “**操作**” 菜单中选择 “**编辑项目”**。

1. 输入您的更新。

   如果您打算启用预算，请参阅，了解[成本监测和控制](cost-management.md)更多信息。当您为项目选择预算时，预算下拉选项的加载可能会延迟几秒钟，如果您看不到刚刚创建的预算，请选择下拉列表旁边的刷新按钮。

   有关**高级选项**的信息，请参阅[添加启动模板](project-launch-template.md)。

1. 选择**提交**。  
![\[编辑项目\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-editproject.png)

# 禁用项目
<a name="disable-project"></a>

要禁用项目，请执行以下操作：

1. 在项目列表中选择一个项目。

1. 从 “**操作**” 菜单中选择 “**禁用项目**”。  
![\[显示操作菜单下拉选项的项目页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-disable-project1.png)

1. 如果某个项目被禁用，则与该项目关联的所有 VDI 会话都将停止。禁用项目后，无法重新启动这些会话。  
![\[显示成功禁用项目横幅的项目页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-disable-project2.png)

# 删除项目
<a name="delete-project"></a>

要删除项目，请执行以下操作：

1. 在项目列表中选择一个项目。

1. 从 “**操作**” 菜单中选择 “**删除项目**”。  
![\[显示操作下拉选项的项目页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-delete-project1.png)

1. 将出现一个确认弹出窗口。输入项目的名称，然后选择 “**是**” 将其删除。  
![\[删除项目确认弹出窗口\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-delete-project-confirm.png)

1. 如果项目被删除，则与该项目关联的所有 VDI 会话都将终止。  
![\[“环境管理” 下的 “项目” 页面，带有显示成功删除项目的横幅\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-delete-project3.png)

# 在项目中添加或移除标签
<a name="tag-project"></a>

项目标签将为在该项目下创建的所有实例分配标签。

1. 在项目列表中选择一个项目。

1. 从 “**操作**” 菜单中选择 “**更新标签**”。

1. 选择 “**添加标签**”，然后为 **Key** 输入一个值。

1. 要移除标签，请选择要**移除**的标签旁边的 “移除”。

# 查看与项目关联的文件系统
<a name="view-project-file-systems"></a>

选择项目后，您可以展开屏幕底部的 “**文件系统**” 窗格以查看与该项目关联的文件系统。

![\[查看与项目关联的文件系统\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-projectfilesystems.jpg)


# 添加启动模板
<a name="project-launch-template"></a>

创建或编辑项目时，您可以使用项目配置中的**高级选项**添加启动模板。启动模板为项目中的所有 VDI 实例提供了其他配置，例如安全组、IAM 策略和启动脚本。

## 添加策略
<a name="add-policies"></a>

您可以添加 IAM 策略来控制在您的项目下部署的所有实例的 VDI 访问权限。要加入策略，请使用以下键值对标记该策略：

```
res:Resource/vdi-host-policy
```

有关 IAM 角色的更多信息，请参阅 I [AM 中的策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。

### 添加安全组
<a name="add-security-groups"></a>

您可以添加安全组来控制项目下所有 VDI 实例的出口和入口数据。要加入安全组，请使用以下键值对标记该安全组：

```
res:Resource/vdi-security-group
```

有关安全组的更多信息，请参阅 *Amazon VPC 用户指南*中的[使用安全组控制 AWS 资源流量](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)。

### 添加启动脚本
<a name="project-launch-scripts"></a>

您可以添加启动脚本，这些脚本将在项目中的所有 VDI 会话中启动。RES 支持 Linux 和 Windows 的脚本初始化。要启动脚本，您可以选择以下任一选项：

**VDI 启动时运行脚本**  
在任何 RES 配置或安装运行之前，此选项在 VDI 实例的开头启动脚本。

**配置 VDI 后运行脚本**  
此选项在 RES 配置完成后启动脚本。

脚本支持以下选项：


| 脚本配置 | 示例 | 
| --- | --- | 
| S3 URI | s3://bucketname/script.sh | 
| HTTPS URL | https://sample.samplecontent.com/sample | 
| 本地文件 | 文件:///.sh user/scripts/example | 

托管在 S3 存储桶上的所有自定义脚本都需要使用以下标签进行配置：

```
res:EnvironmentName/<res-environment>
```

对于**参数**，请提供用逗号分隔的所有参数。

![\[项目配置示例\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-projectconfigexample.png)


启动脚本的示例模板。

------
#### [ Linux ]

```
#  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
#  Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
#  with the License. A copy of the License is located at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
#  OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
#  and limitations under the License.

#!/bin/bash

echo "start_script.sh running" >> /test_scripts
echo "All arguments: $@" >> /test_scripts
echo "Argument count: $#" >> /test_scripts
echo "Argument 1, $1" >> /test_scripts
echo "Argument 2, $2" >> /test_scripts
echo "end of start_script.sh" >> /test_scripts
```

------
#### [ Windows ]

```
#  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
#  Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
#  with the License. A copy of the License is located at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
#  OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
#  and limitations under the License.

#!pwsh

Write-Output "configure_script.ps1 running" | Out-File -Append -FilePath "/test_scripts"
Write-Output "All arguments: $args" | Out-File -Append -FilePath "/test_scripts"
Write-Output "Argument count: $($args.Count)" | Out-File -Append -FilePath "/test_scripts"
Write-Output "Argument 1, $($args[0])" | Out-File -Append -FilePath "/test_scripts"
Write-Output "Argument 2, $($args[1])" | Out-File -Append -FilePath "/test_scripts"
Write-Output "end of configure_script.ps1" | Out-File -Append -FilePath "/test_scripts"
```

------

# 权限策略
<a name="permission-profiles"></a>

Research and Engineering Studio (RES) 允许管理用户创建自定义权限配置文件，向选定的用户授予管理他们所参与的项目的额外权限。每个项目都有两个[默认权限配置文件](permission-matrix.md) —— “项目成员” 和 “项目所有者”，可以在部署后对其进行自定义。

目前，管理员可以使用权限配置文件授予两个权限集合：

1. 项目管理权限，包括 “更新项目成员资格”（允许指定用户将其他用户和组添加到项目或从项目中移除）和 “更新项目状态”（允许指定用户启用或禁用项目）。

1. VDI 会话管理权限，包括 “创建会话”（允许指定用户在其项目中创建 VDI 会话）和 “创建/终止其他用户的会话”（允许指定用户在项目中创建或终止其他用户的会话）。

通过这种方式，管理员可以将基于项目的权限委派给其环境中的非管理员。

**Topics**
+ [项目管理权限](permission-profiles-permission-project-management.md)
+ [VDI 会话管理权限](permission-profiles-permission-vdi-sessions.md)
+ [管理权限配置文件](permission-profiles-permission-management.md)
+ [默认权限配置文件](permission-matrix.md)
+ [环境边界](permission-profiles-environment-boundaries.md)
+ [桌面共享配置文件](permission-profiles-desktop-sharing-profiles.md)

# 项目管理权限
<a name="permission-profiles-permission-project-management"></a>

**更新项目成员资格 **  
此权限允许获得该权限的非管理员用户在项目中添加和删除用户或组。它还允许他们设置权限配置文件并决定该项目的所有其他用户和群组的访问级别。  

![\[团队配置弹出窗口\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-update-project-membership.png)


**更新项目状态 **  
此权限允许获得该权限的非管理员用户使用 “项目” 页面上的 “**操作**” 按钮启用或禁用**项目**。  

![\[环境管理下的管理控制台项目窗口\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-update-project-status.png)


# VDI 会话管理权限
<a name="permission-profiles-permission-vdi-sessions"></a>

**创建会话**  
控制是否允许用户从 “**我的虚拟桌面**” 页面启动自己的 VDI 会话。禁用此选项可拒绝非管理员用户启动自己的 VDI 会话。用户可以随时停止和终止自己的 VDI 会话。  
如果非管理员用户无权创建会话，则他们的 “**启动新虚拟桌面**” 按钮将被禁用，如下所示：  

![\[没有权限的非管理员用户已禁用 “启动新虚拟桌面” 按钮\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-nonadmin-vdi-disabled.png)


**创建或终止其他人的会话**  
允许非管理员用户从左侧导航窗格访问 “**会话**” 页面。这些用户将能够在获得此权限的项目中为其他用户启动 VDI 会话。  
如果非管理员用户有权为其他用户启动会话，则他们的左侧导航窗格将在会话**管理**下方显示**会话**链接，如下所示：  

![\[用于会话管理的非管理员弹出窗口\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-nonadmin-link-displayed.png)

如果非管理员用户无权为其他人创建会话，则他们的左侧导航窗格将不会显示会**话管理**，如下所示：  

![\[会话管理链接对无权为其他人创建会话的非管理员用户隐藏\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-nonadmin-hidden-link.png)


# 管理权限配置文件
<a name="permission-profiles-permission-management"></a>

作为 RES 管理员，您可以执行以下操作来管理权限配置文件。

**列出权限配置文件**
+ 在 Research and Engineering Studio 控制台页面中，选择左侧导航窗格中的**权限策略**。在此页面上，您可以创建、更新、列出、查看和删除权限配置文件。  
![\[管理员可以列出权限配置文件\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/project-roles.png)

**查看权限配置文件**

1. 在 “**权限配置文件**” 主页面上，选择要查看的权限配置文件的名称。在此页面上，您可以编辑或删除选定的权限配置文件。  
![\[管理员可以编辑或删除权限配置文件\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-permission-profiles-view-1.png)

1. 选择 “受**影响的项目**” 选项卡，查看当前使用权限配置文件的项目。  
![\[管理员可以查看受权限配置文件影响的项目\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-permission-profiles-view-2.png)

**创建权限配置文件**

1. 在 “**权限配置文件**” 主页面上，选择 “**创建配置文件**” 以创建权限配置文件。

1. 输入权限配置文件名称和描述，然后选择要向分配给该配置文件的用户或组授予的权限。  
![\[管理员可以创建权限配置文件\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-permission-profiles-create.png)

**编辑权限配置文件**
+ 在**权限配置文件**主页面上，单击配置文件旁边的圆圈选择该配置文件，选择**操作**，然后选择**编辑配置文件**以更新该权限配置文件。  
![\[管理员可以编辑权限配置文件\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-permission-profiles-edit.png)

**删除权限配置文件**
+ 在 “**权限配置文件**” 主页面上，单击配置文件旁边的圆圈将其选中，选择 “**操作**”，然后选择 “**删除配置文件**”。您不能删除任何现有项目使用的权限配置文件。  
![\[管理员可以删除权限配置文件\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-permission-profiles-delete.png)

# 默认权限配置文件
<a name="permission-matrix"></a>

每个 RES 项目都有两个默认权限配置文件，全局管理员可以对其进行配置。（此外，全局管理员可以为项目创建和修改新的权限配置文件。） 下表显示了默认权限配置文件（“项目成员” 和 “项目所有者”）允许的权限。权限配置文件及其授予项目选定用户的权限仅适用于他们所属的项目；全局管理员是超级用户，他们在所有项目中拥有以下所有权限。


| Permissions | 说明 | 项目成员 | 项目所有者 | 
| --- | --- | --- | --- | 
| 创建会话 | 创建自己的会话。无论是否拥有此权限，用户都可以随时停止和终止自己的会话。 | X | X | 
| 创建/终止其他人的会话 | 在项目中创建或终止其他用户的会话。 |  | X | 
| 更新项目成员资格 | 更新与项目关联的用户和群组。 |  | X | 
| 更新项目状态 | 启用或禁用项目。 |  | X | 

# 环境边界
<a name="permission-profiles-environment-boundaries"></a>

环境边界允许研究与工程工作室 (RES) 管理员配置将在全球范围内对所有用户生效的权限。这包括**文件浏览器和 SSH 权限**、**桌面权限**和**桌面高级设置**等权限。

![\[环境边界\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/permission-policy-environment-boundaries.png)


# 配置文件浏览器访问权限
<a name="configuring-file-browser-access"></a>

RES 管理员可以在**文件浏览器权限**下开启或关闭**访问数据**。如果 **Access 数据**被关闭，用户将无法在其 Web 门户中看到**文件浏览器**导航，也无法上传或下载附加到其全局文件系统的数据。启用**访问数据**后，用户可以访问其门户网站中的**文件浏览器**导航，这允许他们上传或下载附加到其全局文件系统的数据。

![\[环境边界\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/permission-policy-ssh-disabled.png)


当**访问数据**功能开启后又关闭时，已登录门户网站的用户将无法上传或下载文件，即使他们在相应的页面上也是如此。此外，当他们刷新页面时，导航菜单将消失。

# 配置 SSH 访问权限
<a name="configuring-ssh-access"></a>

管理员可以从 “环境**边界**” 部分为 RES 环境启用或禁用 SSH。通过堡垒主机实现 SSH 访问。 VDIs 激活此开关后，RES 会部署堡垒主机，并向用户显示 SSH 访问说明页面。停用开关后，RES 将禁用 SSH 访问，终止堡垒主机，并移除用户的 SSH 访问说明页面。默认情况下，此开关处于停用状态。

**注意**  
当 RES 部署堡垒主机时，它会在您的 AWS 账户中添加一个 `t3.medium` Amazon EC2 实例。您应对与此实例相关的所有费用负责。有关更多信息，请参阅 [Amazon EC2 定价页面](https://aws.amazon.com/ec2/pricing/on-demand/)。

**启用 SSH 访问权限**

1. 在 RES 控制台的左侧导航窗格中，选择**环境管理**，然后选择**权限策略**。在 “**环境边界**” 下，选择 **SSH 访问**开关。  
![\[管理员控制台环境管理下的权限策略页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/permission-policy-ssh-disabled.png)

1. 等待启用 SSH 访问权限。  
![\[建议横幅显示在管理员控制台环境管理下的权限策略页面上\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/permission-policy-enable-ssh.png)

1. 添加堡垒主机后，将启用 SSH 访问。  
![\[管理员控制台环境管理下的权限策略页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/permission-policy-ssh-enabled.png)

   用户可以从左侧导航窗格中看到 **SSH 访问说明**页面。  
![\[显示 Linux 和 Windows 操作步骤的 SSH 访问说明页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/permission-policy-ssh-enabled2.png)

**禁用 SSH 访问权限**

1. 在 RES 控制台的左侧导航窗格中，选择**环境管理**，然后选择**权限策略**。在 “**环境边界**” 下，选择 **SSH 访问**开关。  
![\[管理员控制台环境管理下的权限策略页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/permission-policy-ssh-enabled.png)

1. 等待 SSH 访问被禁用。  
![\[权限策略页面上会显示一条横幅显示 SSH 访问已被禁用\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/permission-policy-disable-ssh.png)

1. 该过程完成后，SSH 访问将被禁用。  
![\[权限策略页面显示已禁用 SSH 访问\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/permission-policy-ssh-disabled.png)

# 配置桌面权限
<a name="configuring-desktop-permissions"></a>

管理员可以开启或关闭 “**桌面” 权限**，以全局管理所有者的 VDI 功能。所有这些权限或一部分权限都可用于创建**桌面共享配置文件**，以确定与之共享桌面的用户可以执行哪些操作。如果禁用了任何桌面权限，则会自动禁用**桌面共享配置文件**中的相应权限。这些权限将被标记为 “全局禁用”。即使管理员再次启用此桌面权限，桌面共享配置文件中的权限也将保持禁用状态，直到管理员手动启用该权限。

![\[环境边界\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/permission-policy-environment-boundaries.png)


# 桌面共享配置文件
<a name="permission-profiles-desktop-sharing-profiles"></a>

管理员可以创建新的配置文件并对其进行自定义。所有用户都可以访问这些配置文件，并在与其他人共享会话时使用。在这些配置文件中授予的最大权限不能超过全局允许的桌面权限。

**创建配置文件**

管理员可以选择 “**创建配置文件**” 来创建新的配置文件。然后，他们可以输入**个人资料名称**、**配置文件描述**、设置所需的权限并**保存**所做的更改。

![\[桌面共享配置文件\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/desktop-sharing-profiles.png)


![\[个人资料定义和权限\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-profile-definition.png)


**编辑个人资料**

**要编辑个人资料，请执行以下操作：**

1. 选择所需的配置文件。

1. 选择 “**操作**”，然后选择 “**编辑”** 以修改配置文件。

1. 根据需要调整权限。

1. 选择**保存更改**。

对配置文件所做的任何更改都将立即应用于当前打开的会话。

![\[已选择 testprofile_1 的桌面共享配置文件\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-desktop-sharing-profiles2.png)


![\[testProfile_1 的配置文件定义和权限\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-profile-definition2.png)


# 文件系统
<a name="file-system"></a>

![\[文件系统\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/home-file-systems.png)


在 “文件系统” 页面上，您可以：

1. 搜索文件系统。

1. 选择文件系统后，使用**操作菜单执行以下操作**：

   1. 将文件系统添加到项目中。

   1. 从项目中移除文件系统

1. 载入新的文件系统。

1. 选择文件系统后，您可以展开屏幕底部的窗格以查看文件系统的详细信息。

**Topics**
+ [载入文件系统](onboard-file-system.md)

# 载入文件系统
<a name="onboard-file-system"></a>

**注意**  
要成功加载文件系统，该文件系统必须共享相同的 VPC 和至少一个 RES 子网。您还必须确保正确配置了安全组，这样 VDIs 您才能访问文件系统的内容。

1.  选择 “**板载文件系统**”。

1. 从下拉列表中选择一个文件系统。模态将扩展，并添加更多细节条目。  
![\[选择文件系统\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-selectfilesystem.jpg)

1. 输入文件系统详细信息。
**注意**  
默认情况下，管理员和项目所有者可以在创建新项目时选择主文件系统，但之后无法对其进行编辑。  
要用作项目主目录的文件系统必须通过将其**挂载目录**路径设置为。`/home`这将在主目录文件系统下拉选项中填充已载入的文件系统。此功能有助于保持项目间的数据隔离，因为只有与项目关联的用户才能通过其 VDIs访问文件系统。 VDIs 将在文件系统加载期间选择的挂载点挂载文件系统。

1. 选择**提交**。  
![\[选择文件系统\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-filesystemdetails.jpg)

## 来自单个 ONTAP 文件系统的多个卷
<a name="onboard-multiple-ontap-volumes"></a>

RES 支持从 NetApp ONTAP 文件系统的单个卷加载多个卷。这允许管理员在同一 ONTAP 文件系统中跨不同卷组织数据，同时使每个卷独立可供项目使用。

要从已加载的 ONTAP 文件系统加载其他卷，请执行以下操作：

1. 选择 “**板载文件系统**”。

1. 从下拉列表中选择相同的 ONTAP 文件系统。

1. 在 “**卷**” 字段中，选择与文件系统不同的卷。

1. 为此卷指定唯一的**装载目录**。

1. 选择**提交**。

**注意**  
来自同一 ONTAP 文件系统的每个卷都必须具有唯一的挂载目录。可以将卷独立分配给不同的项目。

# 快照管理
<a name="snapshots"></a>

快照管理简化了在环境之间保存和迁移数据的过程，从而确保了一致性和准确性。使用快照，您可以保存环境状态并将数据迁移到具有相同状态的新环境中。

![\[快照管理页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-snapshotmanagement.png)


在**快照管理**页面上，您可以：

1. 查看所有已创建的快照及其状态。

1. 创建快照。在创建快照之前，您需要创建一个具有相应权限的存储桶。

1. 查看所有已应用的快照及其状态。

1. 应用快照。

**Topics**
+ [创建快照](create-snapshot.md)
+ [应用快照](apply-snapshot.md)

# 创建快照
<a name="create-snapshot"></a>

在创建快照之前，您必须为 Amazon S3 存储桶提供必要的权限。有关创建存储桶的信息，请参阅[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。启用存储桶版本控制和服务器访问日志记录。配置后，可以在存储桶的 “**属性**” 选项卡中启用这些设置。

**注意**  
此 Amazon S3 存储桶的生命周期不会在产品内进行管理。您需要通过控制台管理存储桶的生命周期。

**要向存储桶添加权限，请执行以下操作：**

1. 从存储桶列表中选择您创建的**存储桶**。

1. 选择**权限**选项卡。

1. 在 **Bucket policy（存储桶策略）**下，请选择 **Edit（编辑）**。

1. 将以下语句添加到存储桶策略中。将这些值替换为您自己的值：
   + *111122223333*-> 您的 AWS 账号
   + *\$1RES\$1ENVIRONMENT\$1NAME\$1*-> 你的 RES 环境名称
   + *amzn-s3-demo-bucket*-> 你的 S3 存储桶名称
**重要**  
支持有限的版本字符串 AWS。有关更多信息，请参阅 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_version.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_version.html)。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Export-Snapshot-Policy",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/{RES_ENVIRONMENT_NAME}-cluster-manager-role"
               },
               "Action": [
                   "s3:GetObject",
                   "s3:ListBucket",
                   "s3:AbortMultipartUpload",
                   "s3:PutObject",
                   "s3:PutObjectAcl"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Sid": "AllowSSLRequestsOnly",
               "Action": "s3:*",
               "Effect": "Deny",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ],
               "Condition": {
                   "Bool": {
                       "aws:SecureTransport": "false"
                   }
               },
               "Principal": "*"
           }
       ]
   }
   ```

------

**要创建快照，请执行以下操作：**

1. 选择**创建快照**。

1. 输入您创建的 Amazon S3 存储桶的名称。

1. 输入您希望将快照存储在存储桶中的路径。例如 **october2023/23**。

1. 选择**提交**。  
![\[创建新快照\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-createsnapshot.png)

1. 五到十分钟后，在 “快照” 页面上选择 “**刷新**” 以查看状态。在状态从 “正在进行中” 变为 “已完成” 之前，快照将无效。

# 应用快照
<a name="apply-snapshot"></a>

创建环境快照后，可以将该快照应用到新环境以迁移数据。您需要向存储桶添加新策略，允许环境读取快照。

应用快照会将用户权限、项目、软件堆栈、权限配置文件和文件系统等数据及其关联复制到新环境。不会复制用户会话。应用快照时，它会检查每条资源记录的基本信息，以确定其是否已经存在。对于重复的记录，快照会跳过在新环境中创建资源。对于相似的记录，例如共享名称或密钥，但其他基本资源信息各不相同，它将使用以下约定创建具有修改名称和密钥的新记录：`RecordName_SnapshotRESVersion_ApplySnapshotID`。`ApplySnapshotID`看起来像时间戳，用于标识应用快照的每次尝试。

在快照应用程序期间，快照会检查资源的可用性。不会创建新环境中不可用的资源。对于具有依赖资源的资源，快照会检查依赖资源的可用性。如果依赖资源不可用，它将创建没有依赖资源的主资源。

如果新环境未达到预期或出现故障，则可以查看 CloudWatch 日志组中的日志`/res-<env-name>/cluster-manager`以了解详细信息。每个日志都将有 [应用快照] 标签。应用快照后，您可以从[快照管理](snapshots.md)页面查看其状态。

**要向存储桶添加权限，请执行以下操作：**

1. 从存储桶列表中选择您创建的**存储桶**。

1. 选择**权限**选项卡。

1. 在 **Bucket policy（存储桶策略）**下，请选择 **Edit（编辑）**。

1. 将以下语句添加到存储桶策略中。将这些值替换为您自己的值：
   + *111122223333*-> 您的 AWS 账号
   + *\$1RES\$1ENVIRONMENT\$1NAME\$1*-> 你的 RES 环境名称
   + *amzn-s3-demo-bucket*-> 你的 S3 存储桶名称

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Export-Snapshot-Policy",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/{RES_ENVIRONMENT_NAME}-cluster-manager-role"
               },
               "Action": [
                   "s3:GetObject",
                   "s3:ListBucket"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Sid": "AllowSSLRequestsOnly",
               "Action": "s3:*",
               "Effect": "Deny",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ],
               "Condition": {
                   "Bool": {
                       "aws:SecureTransport": "false"
                   }
               },
               "Principal": "*"
           }
       ]
   }
   ```

------

**要应用快照，请执行以下操作**

1. 选择 “**应用快照**”。

1. 输入包含快照的 Amazon S3 存储桶的名称。

1. 输入存储桶内快照的文件路径。

1. 选择**提交**。  
![\[应用快照\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/res-applysnapshot.png)

1. 五到十分钟后，在 “快照管理” 页面上选择 “**刷新**” 以检查状态。

# Amazon S3 存储桶
<a name="S3-buckets"></a>

研究与工程工作室 (RES) 支持[将 Amazon S3 存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)挂载到 Linux 虚拟桌面基础设施 (VDI) 实例。**RES 管理员可以将 S3 存储桶载入 RES，将其附加到项目，编辑其配置，并在 “环境管理” 下的 “S3 存储桶” 选项卡中删除存储桶。**

S3 存储桶控制面板提供了可供您使用的已载入 S3 存储桶的列表。在 S3 存储桶控制面板中，您可以：

1. 使用**添加存储桶将** S3 存储桶加载到 RES。

1. 选择 S3 存储桶，然后使用**操作菜单执行以下操作**：
   + 编辑存储桶
   + 移除存储桶

1. 使用搜索字段按存储桶名称进行搜索并查找已加载的 S3 存储桶。  
![\[S3 存储桶列表允许您按存储桶名称进行搜索并查找已加载的存储桶\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/docs-list-bucket.png)

以下各节介绍如何在您的 RES 项目中管理 Amazon S3 存储桶。

**Topics**
+ [隔离 VPC 部署的 Amazon S3 存储桶先决条件](S3-buckets-prereqs.md)
+ [添加 Amazon S3 存储桶](S3-buckets-add.md)
+ [编辑 Amazon S3 存储桶](S3-buckets-edit.md)
+ [移除亚马逊 S3 存储桶](S3-buckets-remove.md)
+ [数据隔离](S3-buckets-data-isolation.md)
+ [跨账户存储桶访问权限](S3-buckets-cross-account-access.md)
+ [防止私有 VPC 中的数据泄露](S3-buckets-preventing-exfiltration.md)
+ [问题排查](S3-buckets-troubleshooting.md)
+ [正在启用 CloudTrail](S3-buckets-enabling-cloudtrail.md)

# 隔离 VPC 部署的 Amazon S3 存储桶先决条件
<a name="S3-buckets-prereqs"></a>

如果您要在隔离的 VPC 中部署 Research and Engineering Studio，请在 AWS 账户中部署 RES 后，按照以下步骤更新 lambda 配置参数。

1. 登录部署研究与工程工作室的 AWS 账户的 Lambda 控制台。

1. 查找并导航到名为的 Lambda 函数。`<RES-EnvironmentName>-vdc-custom-credential-broker-lambda`

1. 选择函数的 “**配置**” 选项卡。  
![\[隔离的 VPC 环境变量\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/Isolated-VPC-Env-Variable.png)

1. 在导航窗格中，选择**环境变量**以查看该部分。

1. 选择 **Edit** 并将以下新环境变量添加到函数中：
   + 键：`AWS_STS_REGIONAL_ENDPOINTS`
   + 值：`regional`

1. 选择**保存**。

# 添加 Amazon S3 存储桶
<a name="S3-buckets-add"></a>

**要将 S3 存储桶添加到您的 RES 环境，请执行以下操作：**

1. 选择 **Add bucket (添加存储桶)**。

1. 输入存储桶的详细信息，例如存储桶名称、ARN 和挂载点。
**重要**  
创建后无法更改所提供的存储桶 ARN、挂载点和模式。
存储桶 ARN 可以包含一个前缀，该前缀会将已加载的 S3 存储桶与该前缀隔离开来。

1. 选择一种加载存储桶的模式。
**重要**  
有关[数据隔离](S3-buckets-data-isolation.md)使用特定模式进行数据隔离的更多信息，请参阅。

1. 在 “**高级选项”** 下，您可以提供 IAM 角色 ARN 来挂载存储桶以进行跨账户访问。按照中的[跨账户存储桶访问权限](S3-buckets-cross-account-access.md)步骤创建跨账户访问所需的 IAM 角色。

1. （可选）将存储桶与项目关联，以后可以对其进行更改。但是，无法将 S3 存储桶装载到项目的现有 VDI 会话中。只有在项目与存储桶关联后启动的会话才会挂载存储桶。

1. 选择**提交**。  
![\[添加存储分区页面，显示可用的存储分区设置字段和提交按钮\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/docs-add-bucket.png)

# 编辑 Amazon S3 存储桶
<a name="S3-buckets-edit"></a>

1. 在 S3 存储桶列表中选择一个 S3 存储桶。

1. 从 “**操作**” 菜单中选择 “**编辑”**。

1. 输入您的更新。
**重要**  
将项目与 S3 存储桶关联**不会**将存储桶挂载到该项目的现有虚拟桌面基础架构 (VDI) 实例。只有在项目中启动的 VDI 会话与该存储桶关联后，该存储桶才会装载到该项目中启动的 VDI 会话。
取消项目与 S3 存储桶的关联不会影响 S3 存储桶中的数据，但会导致桌面用户无法访问该数据。

1. 选择 “**保存存储桶设置”**。  
![\[“编辑 S3 存储桶” 页面已输入显示名称和项目关联字段，并突出显示了 “保存存储桶设置” 按钮\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/docs-edit-bucket.png)

# 移除亚马逊 S3 存储桶
<a name="S3-buckets-remove"></a>

1. 在 S3 存储桶列表中选择一个 S3 存储桶。

1. 从 “**操作**” 菜单中选择 “**删除**”。
**重要**  
您必须先从存储桶中移除所有项目关联。
删除操作不会影响 S3 存储桶中的数据。它只会删除 S3 存储桶与 RES 的关联。
移除存储桶将导致现有的 VDI 会话在该会话的凭证到期（大约 1 小时）时无法访问该存储桶中的内容。

# 数据隔离
<a name="S3-buckets-data-isolation"></a>

将 S3 存储桶添加到 RES 时，您可以选择将存储桶内的数据隔离给特定的项目和用户。在**添加存储桶**页面上，您可以选择只读 (R) 或读写 (R/W) 模式。

**只读**

如果选中，`Read Only (R)`则根据存储桶 ARN 的前缀（Amazon 资源名称）强制执行数据隔离。例如，如果管理员使用 ARN 向 RES 添加存储分区，`arn:aws:s3:::bucket-name/example-data/`并将此存储分区与项目 A 和项目 B 关联起来，则 VDIs 从项目 A 和项目 B 中启动的用户只能读取位于路径`bucket-name`下的数据。`/example-data`他们将无法访问该路径之外的数据。如果存储桶 ARN 中没有附加前缀，则整个存储桶将可供与其关联的任何项目使用。

**读和写**

如果`Read and Write (R/W)`选中，则仍会根据存储桶 ARN 的前缀强制执行数据隔离，如上所述。此模式还有其他选项，允许管理员为 S3 存储桶提供基于变量的前缀。选中后`Read and Write (R/W)`，“自定义前缀” 部分将变为可用，该部分提供包含以下选项的下拉菜单：
+ 没有自定义前缀
+ /%p
+ /%p/%u

![\[添加带有自定义前缀下拉列表的存储桶页面\]](http://docs.aws.amazon.com/zh_cn/res/latest/ug/images/add-bucket-custom-prefix.png)


**没有自定义数据隔离 **  
如果`No custom prefix`选择 “**自定义前缀**”，则在不进行任何自定义数据隔离的情况下添加存储桶。这允许与存储桶关联的任何项目具有读取和写入权限。例如，如果管理员使用`No custom prefix`选定的 ARN `arn:aws:s3:::bucket-name` 将存储分区添加到 RES，并将此存储分区与项目 A 和项目 B 相关联，则 VDIs 从项目 A 和项目 B 中启动的用户将拥有对该存储分区的无限制读写权限。

**在每个项目层面上进行数据隔离 **  
如果`/%p`选择 “**自定义前缀**”，则存储桶中的数据将与其关联的每个特定项目隔离。`%p`变量表示项目代码。例如，如果管理员使用`/%p`选定的 ARN `arn:aws:s3:::bucket-name`、**挂载点**为的存储桶添加存储桶*/bucket*，并将该存储桶与项目 A 和项目 B 关联起来，则项目 A 中的用户 A 可以向写入文件。*/bucket*项目 A 中的用户 B 也可以看到用户 A 写入的文件*/bucket*。但是，如果用户 B 在项目 B 中启动 VDI 并进行查看*/bucket*，他们将看不到用户 A 写入的文件，因为数据是按项目隔离的。用户 A 写入的文件位于前缀下的 S3 存储桶中，`/ProjectA`而用户 B 只能在使用项目 B VDIs 中的文件`/ProjectB`时才能访问

**在每个项目、每个用户级别上进行数据隔离 **  
如果`/%p/%u`选择 “**自定义前缀**”，则存储桶中的数据将与该项目关联的每个特定项目和用户隔离。`%p`变量代表项目代码，`%u`代表用户名。例如，管理员使用 ARN `arn:aws:s3:::bucket-name` 将存储桶添加到 RES 中，`/%p/%u`选中且挂载点为。*/bucket*此存储桶与项目 A 和项目 B 相关联。项目 A 中的用户 A 可以向其写入文件*/bucket*。与之前仅使用`%p`隔离的场景不同，在这种情况下，用户 B 将看不到用户 A 在项目 A 中写入的文件*/bucket*，因为数据由项目和用户隔离。用户 A 写入的文件位于前缀下的 S3 存储桶中，`/ProjectA/UserA`而用户 B 只能 VDIs 在项目 A 中使用他们的文件`/ProjectA/UserB`时才能访问。

# 跨账户存储桶访问权限
<a name="S3-buckets-cross-account-access"></a>

RES 可以从其他 AWS 账户挂载存储桶，前提是这些存储桶具有适当的权限。在以下场景中，账户 A 中的 RES 环境想要在账户 B 中挂载 S3 存储桶。

**步骤 1：在部署 RES 的账户中创建 IAM 角色*（这将称为账户 A）*：**

1. 登录需要访问 S3 存储桶的 RES 账户（账户 A）的 AWS 管理控制台。

1. 打开 IAM 控制台：

   1. 导航到 IAM 控制面板。

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

1. 创建策略：

   1. 选择**创建策略**。

   1. 选择 **JSON** 选项卡。

   1. 粘贴以下 JSON 策略（`amzn-s3-demo-bucket`替换为账户 B 中的 S3 存储桶的名称）：

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:ListBucket",
                      "s3:DeleteObject",
                      "s3:AbortMultipartUpload"
                  ],
                  "Resource": [
                      "arn:aws:s3:::amzn-s3-demo-bucket",
                      "arn:aws:s3:::amzn-s3-demo-bucket/*"
                  ]
              }
          ]
      }
      ```

------

   1. 选择**下一步**。

1. 查看并创建策略：

   1. 提供策略的名称（例如，AccessPolicy“S3”）。

   1. 添加可选描述以解释政策的目的。

   1. 查看策略并选择**创建策略**。

1. 打开 IAM 控制台：

   1. 导航到 IAM 控制面板。

   1. 在导航窗格中，选择**角色**。

1. 创建角色：

   1. 选择**创建角色**。

   1. 选择**自定义信任策略**作为可信实体的类型。

   1. 粘贴以下 JSON 策略（`111122223333`替换为账户 A 的实际账户 ID 和 `{RES_ENVIRONMENT_NAME}` RES 部署的环境名称）：

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/<ENVIRONMENT_NAME>-vdc-custom-credential-broker-lambda-role"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. 选择**下一步**。

1. 附加权限策略：

   1. 搜索并选择您之前创建的策略。

   1. 选择**下一步**。

1. 标记、查看和创建角色：

   1. 输入角色名称（例如，AccessRole“S3”）。

   1. 在 “步骤 3” 下，选择 “**添加标签**”，然后输入以下键和值：
      + 键：`res:Resource`
      + 值：`s3-bucket-iam-role`

   1. 查看角色并选择**创建角色**。

1. 在 RES 中使用 IAM 角色：

   1. 复制您创建的 IAM 角色 ARN。

   1. 登录 RES 控制台。

   1. 在左侧导航窗格中，选择 **S3 存储桶**。

   1. 选择**添加存储桶**，然后使用跨账户 S3 存储桶 ARN 填写表单。

   1. 选择 “**高级设置-可选**” 下拉列表。

   1. 在 IAM 角色 ARN 字段中输入角色 ARN。

   1. 选择 “**添加存储桶**”。

**步骤 2：修改账户 B 中的存储桶策略**

1. 登录账户 B 的 AWS 管理控制台

1. 打开 S3 控制台：

   1. 导航到 S3 控制面板。

   1. 选择您要授予访问权限的存储桶。

1. 编辑存储桶策略：

   1. 选择 “**权限**” 选项卡，然后选择 “**存储桶策略**”。

   1. 添加以下策略以授予账户 A 中的 IAM 角色访问存储桶的权限（*111122223333*替换为账户 A 的实际账户 ID 和 *amzn-s3-demo-bucket* S3 存储桶的名称）：

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/S3AccessRole"
                  },
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:ListBucket",
                      "s3:DeleteObject",
                      "s3:AbortMultipartUpload"
                  ],
                  "Resource": [
                      "arn:aws:s3:::amzn-s3-demo-bucket",
                      "arn:aws:s3:::amzn-s3-demo-bucket/*"
                  ]
              }
          ]
      }
      ```

------

   1. 选择**保存**。

# 防止私有 VPC 中的数据泄露
<a name="S3-buckets-preventing-exfiltration"></a>

为防止用户将数据从安全 S3 存储桶泄露到自己账户中的 S3 存储桶中，您可以附加 VPC 终端节点来保护您的私有 VPC。以下步骤说明如何为 S3 服务创建 VPC 终端节点，该终端节点支持访问您的账户中的 S3 存储桶以及任何其他拥有跨账户存储桶的账户。

1. 打开亚马逊 VPC 控制台：

   1. 登录到 AWS 管理控制台。

   1. 打开亚马逊 VPC 控制台，网址为[ https://console.aws.amazon.com/vpcconsole/](https://console.aws.amazon.com/vpcconsole)。

1. 为 S3 创建 VPC 终端节点：

   1. 在左侧导航窗格中，选择**终端节点**。

   1. 选择**创建端点**。

   1. 对于**服务类别**，请确保选中 **AWS 服务**。

   1. 在 “**服务名称**” 字段中，输入`com.amazonaws.<region>.s3`（`<region>`用您 AWS 所在的地区替换）或搜索 “S3”。

   1. 从列表中选择 S3 服务。

1. 配置端点设置：

   1. 对于 **VPC**，选择要在其中创建端点的 VPC。

   1. 对于**子网**，请选择部署期间用于 VDI 子网的两个私有子网。

   1. 对于**启用 DNS 名称**，请确保选中该选项。这允许将私有 DNS 主机名解析到端点网络接口。

1. 将策略配置为限制访问：

   1. 在 “**策略**” 下，选择 “**自定义**”。

   1. 在策略编辑器中，输入限制访问您的账户或特定账户内资源的策略。以下是策略示例（*amzn-s3-demo-bucket*替换为您的 S3 存储桶*444455556666*名称*111122223333*和您想要访问 IDs 的相应 AWS 账户）：
**注意**  
此示例策略使用`s3:*`但不限制 S3 控制平面操作，例如事件通知配置、复制或清单。这些操作可能允许将对象元数据（例如存储桶名称和对象密钥）发送到跨账户目的地。如果存在问题，请在 VPC 终端节点策略中为相关 S3 控制平面操作添加明确的拒绝语句。

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": "*",
                  "Action": "s3:*",
                  "Resource": [
                      "arn:aws:s3:::amzn-s3-demo-bucket",
                      "arn:aws:s3:::amzn-s3-demo-bucket/*"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "aws:PrincipalAccount": [
                              "111122223333",
                              "444455556666"
                          ]
                      }
                  }
              }
          ]
      }
      ```

------

1. 创建终端节点：

   1. 检视您的设置。

   1. 选择**创建端点**。

1. 验证终端节点：

   1. 创建终端节点后，在 VPC 控制台中导航至 “**终端节点**” 部分。

   1. 选择新创建的端点。

   1. 验证**状态**是否为**可用**。

按照这些步骤操作，您可以创建一个允许 S3 访问的 VPC 终端节点，但仅限于您的账户或指定账户 ID 中的资源。

# 问题排查
<a name="S3-buckets-troubleshooting"></a>

**如何检查存储桶是否无法在 VDI 上挂载** 

如果存储桶无法在 VDI 上装载，则可以在几个位置检查是否存在错误。请按照以下步骤操作。

1. 查看 VDI 日志：

   1. 登录到 AWS 管理控制台。

   1. 打开 EC2 控制台并导航到**实例**。

   1. 选择您启动的 VDI 实例。

   1. 通过会话管理器连接到 VDI。

   1. 运行以下 命令：

      ```
      sudo su
      cd ~/bootstrap/logs
      ```

      在这里，你可以找到引导日志。任何失败的详细信息都将在`configure.log.{time}`文件中找到。

      此外，请查看`/etc/message`日志以获取更多详细信息。

1. 查看自定义凭证代理 CloudWatch Lambda 日志：

   1. 登录到 AWS 管理控制台。

   1. 打开 CloudWatch 控制台并导航到**日志组**。

   1. 搜索日志组`/aws/lambda/<stack-name>-vdc-custom-credential-broker-lambda`。

   1. 检查第一个可用的日志组并在日志中找到所有错误。这些日志将包含有关为安装 S3 存储桶提供临时自定义凭证的潜在问题的详细信息。

1. 查看自定义凭证代理 API Gateway CloudWatch 日志：

   1. 登录到 AWS 管理控制台。

   1. 打开 CloudWatch 控制台并导航到**日志组**。

   1. 搜索日志组`<stack-name>-vdc-custom-credential-broker-lambdavdccustomcredentialbrokerapigatewayaccesslogs<nonce>`。

   1. 检查第一个可用的日志组并在日志中找到所有错误。这些日志将包含有关向 API Gateway 发出的挂载 S3 存储桶所需的自定义凭据的任何请求和响应的详细信息。

**如何在入职后编辑存储桶的 IAM 角色配置** 

1. 登录 [AWS DynamoDB 控制台](https://console.aws.amazon.com/dynamodbv2/home)。

1. 选择表格：

   1. 在左侧导航窗格中，选择 **表**。

   1. 查找并选择`<stack-name>.cluster-settings`。

1. 扫描桌子：

   1. 选择**浏览表项目**。

   1. 确保已选择 “**扫描**”。

1. 添加过滤器：

   1. 选择 “**过滤器**” 以打开 “筛选器条目” 部分。

   1. 将过滤器设置为与您的密钥相匹配-
      + **属性**：输入密钥。
      + **条件**：选择 “**开头为**”。
      + **值**：输入`shared-storage.<filesystem_id>.s3_bucket.iam_role_arn`*<filesystem\$1id>*替换为需要修改的文件系统的值。

1. 执行扫描：

   选择 “**运行**” 以使用过滤器运行扫描。

1. 检查值：

   如果该条目存在，请确保使用正确的 IAM 角色 ARN 正确设置该值。

   如果该条目不存在：

   1. 选择**创建项目**。

   1. 输入商品详情：
      + 对于关键属性，请输入`shared-storage.<filesystem_id>.s3_bucket.iam_role_arn`。
      + 添加正确的 IAM 角色 ARN。

   1. 选择 “**保存**” 以添加该项目。

1. 重新启动 VDI 实例：

   重启实例， VDIs 确保再次挂载受错误 IAM 角色 ARN 影响的实例。

# 正在启用 CloudTrail
<a name="S3-buckets-enabling-cloudtrail"></a>

要使用 CloudTrail 控制台 CloudTrail 在您的账户中启用，请按照*AWS CloudTrail 用户指南*中使用[ CloudTrail 控制台创建跟踪中提供的说明进行](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time.html)操作。 CloudTrail 将通过记录访问 S3 存储桶的 IAM 角色来记录对 S3 存储桶的访问权限。这可以链接回实例 ID，该实例ID链接到项目或用户。