

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

# 使用 IAM 角色和 SigV4 插件创建用于连接 Amazon Keyspaces 的临时凭证
<a name="temporary.credentials.IAM"></a>

对于通过编程方式访问 Amazon Keyspaces，推荐的做法是通过 SigV4 插件使用[临时凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)进行身份验证。在许多情况下，您并不需要永不过期的长期访问密钥（如 IAM 用户访问密钥）。相反，您可以创建一个 IAM 角色并生成临时安全凭证。临时安全证书包括访问密钥 ID 和秘密访问密钥，以及一个指示证书何时到期的安全令牌。要详细了解如何使用 IAM 角色而不是长期访问密钥，请参阅[切换到 IAM 角色 (AWS API)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html)。

要开始使用临时凭证，您首先需要创建一个 IAM 角色。

**创建授予对 Amazon Keyspaces 的只读访问权的 IAM 角色。**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

1. 在**创建角色**页面上的**选择受信实体类型**下，选择 **AWS 服务**。在**使用案例**下，选择 **Amazon EC2**，然后选择**下一步**。

1. 在**添加权限**页面的**权限策略**下，从策略列表中选择 **Amazon Keyspaces 只读访问**，然后选择**下一步**。

1. 在**命名、审核和创建**页面上，为角色输入名称，并查看**选择受信实体**和**添加权限**部分。您还可以在此页面上为角色添加可选标签。完成后，选择**创建角色**。请记住此名称，因为您在启动 Amazon EC2 实例时会用到它。

要在代码中使用临时安全证书，您需要以编程方式调用 AWS Security Token Service API，`AssumeRole`并从您在上一步中创建的 IAM 角色中提取生成的证书和会话令牌。然后，您可以使用这些值作为后续调用的凭据 AWS。下面的示例展示了有关如何使用临时安全凭证的伪代码：

```
assumeRoleResult = AssumeRole(role-arn);
tempCredentials = new SessionAWSCredentials(
   assumeRoleResult.AccessKeyId, 
   assumeRoleResult.SecretAccessKey, 
   assumeRoleResult.SessionToken);
cassandraRequest = CreateAmazoncassandraClient(tempCredentials);
```

有关使用 Python 驱动程序实施临时凭证以访问 Amazon Keyspaces 的示例，请参阅[使用适用于 Apache Cassandra 的 Pyt DataStax hon 驱动程序和 SigV4 身份验证插件连接到亚马逊密钥空间](using_python_driver.md#python_SigV4)。

有关如何调用 `AssumeRole`、`GetFederationToken` 和其他 API 操作的详细信息，请参阅 [AWS Security Token Service API 参考](https://docs.aws.amazon.com/STS/latest/APIReference/)。有关从结果中获取临时安全凭证和会话令牌的信息，请参阅所用开发工具包的文档。你可以在主文档 AWS SDKs [页面的**SDKs 和工具包**部分找到所有文档的AWS 文档](https://aws.amazon.com/documentation)。