

# 安装 SerDe 库
<a name="schema-registry-gs-serde"></a>

Serde 库提供用于序列化和反序列化数据的框架。

您将为生成数据的应用程序（统称为“序列化程序”）安装开源序列化程序。序列化程序处理序列化、压缩以及与架构注册表的交互。序列化程序自动从正在写入架构注册表兼容目标（如 Amazon MSK）的记录中提取架构。同样，您将在使用数据的应用程序上安装开源反序列化程序。

## 用于序列化程序的 IAM 示例
<a name="schema-registry-gs1"></a>

**注意**  
Amazon 托管策略将授予针对常用使用案例的必要权限。有关使用托管策略管理模式注册表的信息，请参阅[适用于 Amazon Glue 的 Amazon 托管（预定义）策略](security-iam-awsmanpol.md#access-policy-examples-aws-managed)。

对于序列化程序，您应该创建类似如下的最低策略，以便您能够找到针对指定架构定义的 `schemaVersionId`。请注意，您应该对注册表具有读取权限，以便读取注册表中的架构。您可以使用 `Resource` 子句，限制可以读取的注册表。

代码示例 13：

```
{
    "Sid" : "GetSchemaByDefinition",
    "Effect" : "Allow",
    "Action" :
	[
        "glue:GetSchemaByDefinition"
    ],
        "Resource" : ["arn:aws:glue:us-east-2:012345678:registry/registryname-1",
                      "arn:aws:glue:us-east-2:012345678:schema/registryname-1/schemaname-1",
                      "arn:aws:glue:us-east-2:012345678:schema/registryname-1/schemaname-2"
                     ]
}
```

此外，您还可以允许创建者包括以下额外的方法，以创建新的架构和版本。请注意，您应该能够检查注册表，以便添加/删除/演变其中的架构。您可以使用 `Resource` 子句，限制可以检查的注册表。

代码示例 14：

```
{
    "Sid" : "RegisterSchemaWithMetadata",
    "Effect" : "Allow",
    "Action" :
	[
        "glue:GetSchemaByDefinition",
        "glue:CreateSchema",
        "glue:RegisterSchemaVersion",
        "glue:PutSchemaVersionMetadata",
    ],
    "Resource" : ["arn:aws:glue:{{aws-region}}:123456789012:registry/registryname-1",
                  "arn:aws:glue:{{aws-region}}:123456789012:schema/registryname-1/schemaname-1",
                  "arn:aws:glue:{{aws-region}}:123456789012:schema/registryname-1/schemaname-2"
                 ]
}
```

## 用于反序列化程序的 IAM 示例
<a name="schema-registry-gs1b"></a>

对于反序列化程序（使用者端），您应创建类似如下的策略，以允许反序列化程序从架构注册表中获取架构以进行反序列化。请注意，您应该能够检查注册表，以便获取其中的架构。

代码示例 15：

```
{
    "Sid" : "GetSchemaVersion",
    "Effect" : "Allow",
    "Action" :
	[
        "glue:GetSchemaVersion"
    ],
    "Resource" : ["*"]
}
```

## 使用 Amazon PrivateLink 的私有连接
<a name="schema-registry-gs-private"></a>

您可以使用 Amazon PrivateLink 将您的数据创建者的 VPC 连接到 Amazon Glue，方法是为 Amazon Glue 定义接口 VPC 终端节点。当您使用 VPC 接口端点时，您的 VPC 与 Amazon Glue 之间的通信完全在 Amazon 网络内进行。有关更多信息，请参阅[将 Amazon Glue 与接口 VPC 终端节点一起使用](https://docs.amazonaws.cn/glue/latest/dg/vpc-endpoint.html)。