

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

# Snowflake 编程访问令牌
<a name="mes-partner-SnowflakePat"></a>

## 秘密值字段
<a name="w2aac25c11c31b3"></a>

以下是 Secrets Manager 密钥中必须包含的字段：

```
{
  "account": "{{Snowflake account identifier}}",
  "user": "{{Snowflake username}}",
  "privateKey": "{{PEM-encoded private key}}",
  "passphrase": "{{private key passphrase (optional)}}",
  "patTokenName": "{{PAT name}}",
  "patTokenValue": "{{PAT secret value}}"
}
```

账户  
您的 Snowflake 账户标识符（例如，`myorg-myaccount`）。这是你的 Snowflake 网址`.snowflakecomputing.com`中之前的部分。

用户  
拥有 PAT 的 Snowflake 用户名。此用户必须配置密钥对身份验证。

privateKey  
PEM-encoded 用于密钥对身份验证的私钥。此密钥不会轮换，它用于对 ROTATE PAT 命令进行身份验证（PAT 无法自行轮换）。

密码短语  
（可选）加密私钥的密码。如果私钥未加密，则留空。

pat TokenName  
要轮换的编程访问令牌的名称。必须与 Snowflake 中的代币名称匹配。

pat TokenValue  
编程访问令牌密钥值。这是被轮换的字段。

## 机密元数据字段
<a name="w2aac25c11c31b5"></a>

以下是 Snowflake 编程访问令牌的元数据字段：

```
{
  "daysToExpiry": "{{15}}",
  "expireOldTokenAfterHours": "{{24}}"
}
```

天 ToExpiry  
（可选）创建时设置的 PAT 的 DAYS\_TO\_EXPIRITY 值 (1—365)。默认值：15。必须与 Snowflake 设置相匹配。用于验证轮换时间表是否比代币的 TTL 短。

到期 OldTokenAfterHours  
（可选）轮换后上一个令牌到期前的几个小时（0—720）。默认值：24。设置为 0 表示旧令牌立即到期。

## 使用流程
<a name="w2aac25c11c31b7"></a>

此轮换使用单密架构。该密钥包含密钥对凭证（用于对轮换命令进行身份验证）和 PAT 值（轮换后的凭证）。

您可以使用[CreateSecret](https://docs.amazonaws.cn/secretsmanager/latest/apireference/API_CreateSecret.html)调用来创建您的密钥，其密钥值包含上述字段，密钥类型为 SnowflakePat。可以使用[RotateSecret](https://docs.amazonaws.cn/secretsmanager/latest/apireference/API_RotateSecret.html)呼叫来设置轮换配置。旋转元数据字段可以留空以使用默认值。您必须在[RotateSecret](https://docs.amazonaws.cn/secretsmanager/latest/apireference/API_RotateSecret.html)调用中提供角色 ARN，以向服务授予轮换密钥所需的权限。有关权限策略的示例，请参阅[安全和权限](mes-security.md)。

在轮换期间，驱动程序通过密钥对身份验证连接到 Snowflake 并执行`ALTER USER ... ROTATE PAT`命令，该命令以原子方式生成新令牌，并在配置的宽限期内使旧令牌过期。然后，通过将新令牌作为密码进行连接，对其进行验证。