

# AWS Glue 的已知问题
<a name="glue-known-issues"></a>

请注意 AWS Glue 的以下已知问题。

**Topics**
+ [防止跨作业数据访问](#cross-job-access)

## 防止跨作业数据访问
<a name="cross-job-access"></a>

考虑在单个 AWS 账户中有两个 AWS Glue Spark 任务的情况，每个任务都在一个单独的 AWS Glue Spark 集群中运行。这些作业使用 AWS Glue 连接来访问同一 Virtual Private Cloud（VPC）中的资源。在这种情况下，在一个集群中运行的作业可能能够访问在另一个集群中运行的作业的数据。

下图说明了这种情况的一个示例。

![Cluster-1 中的 AWS Glue 任务 Job-1 和 Cluster-2 中的 Job-2 都与 VPC 内的 Subnet-1 中的 Amazon Redshift 实例通信。数据从 Amazon S3 Bucket-1 和 Bucket-2 传输到 Amazon Redshift。](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/escalation-of-privs.png)


在图中，AWS Glue `Job-1` 在 `Cluster-1` 中运行，Job-2 在 `Cluster-2` 中运行。这两个任务都使用位于 VPC 的 `Subnet-1` 中的同一个 Amazon Redshift 实例。`Subnet-1` 可以是公有子网或私有子网。

`Job-1` 将 Amazon Simple Storage Service（Amazon S3）`Bucket-1` 中的数据传输出来，并写入 Amazon Redshift 中。`Job-2` 对 `Bucket-2` 中的数据执行相同的操作。`Job-1` 使用 AWS Identity and Access Management (IAM) 角色 `Role-1`（未显示），该角色授予对 `Bucket-1` 的访问权限。`Job-2` 使用 `Role-2`（未显示），该角色授予对 `Bucket-2` 的访问权限。

这两个作业均具有使其能够与对方的集群进行通信的网络路径，从而能够访问对方的数据。例如，`Job-2` 可以访问 `Bucket-1` 中的数据。在图中，这显示为红色的路径。

为防止这种情况，我们建议您将不同的安全配置附加到 `Job-1` 和 `Job-2`。通过附加安全配置，可以凭借 AWS Glue 创建的证书阻止对数据的跨作业访问。安全配置可以是*虚拟*配置。也就是说，您可以创建安全配置，而无需启用 Amazon S3 数据、Amazon CloudWatch 数据或任务书签的加密。所有三个加密选项都可以被禁用。

有关安全配置的信息，请参阅[加密 AWS Glue 写入的数据](encryption-security-configuration.md)。

**将安全配置附加到作业**

1. 通过 [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) 打开 AWS Glue 控制台。

1. 在作业的 **Configure the job properties (配置作业属性)** 页面上，展开 **Security configuration, script libraries, and job parameters (安全配置、脚本库和作业参数)** 部分。

1. 在列表中选择一个安全配置。