如何创建和配置AmazonAmazon Keyspaces 凭证 - Amazon Keyspaces (for Apache Cassandra)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

如何创建和配置AmazonAmazon Keyspaces 凭证

要以编程方式访问亚马逊Keyspaces,请使用Amazon CLI,AmazonSDK,或者使用 Cassandra 客户端驱动程序和 SigV4 插件,您需要一个拥有访问密钥的 IAM 用户或角色。当您以编程方式使用 Amazon 时,您需要提供您的 Amazon访问密钥,以便 Amazon 可以在编程调用中验证您的身份。您的访问密钥包含访问密钥 ID(例如 AKIAIOSFODNN7EXAMPLE)和秘密访问密钥(例如 wJalrXUtnFEMI/K7MDENG/ AKIAIOSFODNN7EXAMPLEbPxRfiCYEXAMPLEKEY)。本主题说明该过程中的必填步骤。

所需的证书Amazon CLI,AmazonSDK,或适用于 Cassandra 客户端驱动程序的 Amazon Keyspaces Sigv4 插件

对 IAM 用户或角色进行身份验证需要以下证书:

AWS_ACCESS_KEY_ID

指定与 IAM 用户或角色关联的 Amazon 访问密钥。

访问密钥aws_access_key_id需要通过编程方式连接到 Amazon Keyspaces。

AWS_SECRET_ACCESS_KEY

指定与访问密钥关联的私有密钥。这基本上是访问密钥的“密码”。

这些区域有:aws_secret_access_key需要通过编程方式连接到 Amazon Keyspaces。

AWS_SESSION_TOKEN— 可选

指定在使用您直接从 Amazon Security Token Service 操作中检索的临时安全凭证时需要的会话令牌值。有关更多信息,请参阅 使用 IAM 角色和 SigV4 插件的 Amazon Keyspaces。

如果您正在与 IAM 用户连接,aws_session_token不是必填的。

创建 IAM 用户以编程方式访问您的亚马逊KeyspacesAmazon帐户

要获取以编程方式访问 Amazon Keyspaces 的证书Amazon CLI,AmazonSDK 或 SigV4 插件,您需要先创建 IAM 用户或角色。创建用户并配置该用户以编程方式访问 Amazon Keyspaces。

  1. 在中创建用户Amazon Web Services Management Console,Amazon CLI,适用于 Windows 的 PowerShell,或者使用AmazonAPI 操作。如果你在中创建用户Amazon Web Services Management Console,然后自动创建证书。

  2. 如果您以编程方式创建用户,则必须在附加步骤中为该用户创建访问密钥(访问密钥 ID 和秘密访问密钥)。

  3. 授予用户访问亚马逊Keyspaces 的权限。

有关创建用户时需要的权限的信息,请参阅访问 IAM 资源所需的权限.

创建 IAM 用户(控制台)

您可以使用 Amazon Web Services Management Console 创建 IAM 用户。

要创建具有编程访问的 IAM 用户(控制台)

  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Users(用户),然后选择 Add users(添加用户)。

  3. 为新用户键入用户名。这是 Amazon 的登录名。

    注意

    用户名可以是一个最多由 64 个字母、数字和以下字符构成的组合:加号 (+)、等号 (=)、逗号 (,)、句点 (.)、at 符号 (@)、下划线 (_) 和连字符 (-)。账户中的名称必须唯一。名称不区分大小写。例如,您不能创建名为 TESTUSERtestuser 的两个用户。

  4. Select访问密钥-编程访问为新用户创建访问密钥。您可以在转到决赛页面。

    选择 Next:。Permissions (下一步:权限)

  5. 设置权限页面,选择直接附加现有策略向新用户分配权限。

    此选项显示以下列表Amazon您的账户中提供托管策略和客户托管策略。你可以输入keyspaces进入搜索字段,以仅显示与 Amazon Keyspaces。

    对于 Amazon Keyspaces,可用的托管策略是AmazonKeyspacesFullAccessAmazonKeyspacesReadOnlyAccess. 有关各项策略的更多信息,请参阅AmazonAmazon Keyspaces(适用于.

    出于测试目的和遵循连接教程,请选择AmazonKeyspacesReadOnlyAccess新用户的策略。注意:作为最佳实践,我们建议您遵循最低权限原则,创建自定义策略,限制对特定资源的访问并仅允许所需操作。有关 IAM 策略的更多信息以及查看 Amazon Keyspaces 的示例策略,请参阅Amazon Keyspaces 基于身份的策略. 创建自定义策略后,将策略附加到组,然后使用户成为相应组的成员。

    选择 Next:。标签

  6. 添加标签(可选)页面你可以为用户添加标签,或者选择下一步:审核

  7. 审核页面您可以看到您此时已做出的所有选择。如果您准备好继续,请选择创建用户.

  8. 要查看用户的访问密钥(访问密钥 ID 和秘密访问密钥),请选择密码和访问密钥旁边的 Show (显示)。要保存访问密钥,请选择下载 .csv,然后将文件保存到安全位置。

    重要

    这是您查看或下载秘密访问密钥的唯一机会,他们才能使用SigV4插件的。将用户的新访问密钥 ID 和秘密访问密钥保存在安全的地方。完成此步骤后,您再也无法访问这些秘密访问密钥。

创建 IAM 用户 (Amazon CLI)

您可以使用 Amazon CLI 创建 IAM 用户。

创建具有编程访问权限的 IAM 用户 (Amazon CLI)

  1. 使用以下内容创建用户Amazon CLI代码。

  2. 向用户提供编程访问。这需要访问密钥,可以通过以下方式生成。

    • Amazon CLI: aws iam create-access-key

    • 适用于 Windows 的工具 PowerShell:New-IAMAccessKey

    • IAM API:CreateAccessKey

      重要

      这是您查看或下载秘密访问密钥的唯一机会,他们才能使用SigV4插件的。将用户的新访问密钥 ID 和秘密访问密钥保存在安全的地方。完成此步骤后,您再也无法访问这些秘密访问密钥。

  3. 附上AmazonKeyspacesReadOnlyAccess策略适用于用户,此策略用于定义该用户的权限。注意:作为最佳实践,我们建议您通过将用户添加到一个组并向该组附加策略(而不是直接向用户附加策略)来管理用户权限。

为 IAM 用户创建新的访问密钥

如果您已有一个 IAM 用户,您可以随时创建新的访问密钥。有关密钥管理的更多信息,例如如何轮换访问密钥,请参阅管理 IAM 用户的访问密钥.

创建 IAM 用户的访问密钥(控制台)

  1. 登录 Amazon Web Services Management Console,单击 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  2. 在导航窗格中,选择 Users(用户)。

  3. 选择要为其创建访问密钥的用户的名称。

  4. 摘要用户页面,选择安全凭证选项卡。

  5. Access keys(访问密钥)部分中,选择 Create access key(创建访问密钥)。

    要查看新访问密钥对,请选择 Show (显示)。您的凭证与下面类似:

    • 访问密钥 ID:AKIAIOSFODNN7EXAMPLE

    • 秘密访问密钥:wJalrXUtnFEM/K7MDENG/K7MDENG/bPxRfiCYEXAMPLEKE

    注意

    关闭此对话框后,您将无法再次访问该秘密访问密钥。

  6. 要下载密钥对,请选择 Download .csv file(下载 .csv 文件)。将密钥存储在安全位置。

  7. 下载 csv 格式文件之后,选择 Close(关闭)

在创建访问密钥时,预设情况下,密钥对处于活动状态,并且您可以立即使用此密钥对。

如何管理 IAM 用户的访问密钥

作为最佳实践,我们建议您不要将访问密钥直接嵌入到代码中。这些区域有:Amazon开发工具包包包包包包和Amazon使用 Command Line Tools,可以在已知位置放置访问密钥,这样就不必保留在代码中。在以下任一位置中放置访问密钥:

  • 环境变量— 在多租户系统上,选择用户环境变量,而不是系统环境变量。

  • CLI 凭证文件 – 在运行 credentials 命令时,将更新 configaws configure 文件。这些区域有:credentials文件位于~/.aws/credentials在 Linux、macOS 或 Unix 上,或者在C:\Users\USERNAME\.aws\credentials在 Windows 上。该文件可以包含 default 配置文件和任何命名配置文件的凭证详细信息。

  • CLI 配置文件 – 在运行 credentials 命令时,将更新 configaws configure 文件。这些区域有:config文件位于~/.aws/config在 Linux、macOS 或 Unix 上,或者在C:\Users\USERNAME\.aws\config在 Windows 上。该文件包含原定设置配置文件和任何命名配置文件的配置设置。

将访问密钥存储为环境变量是访问密钥的先决条件Step-by-step 使用 4.x 连接到 Amazon Keyspaces 的教程 DataStax 适用于 Apache Cassandra 的 Java 驱动程序和 SigV4 身份验证插件. 客户端使用默认的凭证提供者链搜索证书,存储为环境变量的访问密钥优先于所有其他位置,例如配置文件。有关更多信息,请参阅 。配置设置和优先顺序.

下面的示例介绍您如何可以为默认用户配置环境变量。

Linux, macOS, or Unix
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE $ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY $ export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of security token>

设置环境变量会更改使用的值,直到 Shell 会话结束或直到您将该变量设置为其他值。通过在 shell 的启动脚本中设置变量,可使变量在未来的会话中继续有效。

Windows Command Prompt
C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> setx AWS_SESSION_TOKEN AQoDYXdzEJr...<remainder of security token>

使用 set 设置环境变量会更改使用的值,直到当前命令提示符会话结束,或者直到您将该变量设置为其他值。使用 setx 设置环境变量会更改当前命令提示符会话和运行该命令后创建的所有命令提示符会话中使用的值。它 影响在运行该命令时已经运行的其他命令 shell。

PowerShell
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" PS C:\> $Env:AWS_SESSION_TOKEN="AQoDYXdzEJr...<remainder of security token>"

如果你在 PowerShell 提示符如前面的示例所示,它仅保存当前会话持续时间的值。使环境变量设置在所有环境中保持不变 PowerShell 和命令提示符会话,使用系统中的应用程序控制面板. 或者,您可以为将future 全部设置该变量 PowerShell 通过将其添加至您的会话 PowerShell 配置文件。请参阅PowerShell 文档了解有关存储环境变量或跨会话保存它们的更多信息。

使用 IAM 角色和 SigV4 插件的 Amazon Keyspaces。

为了增强安全性,您可以使用临时凭证使用 Sigv4 插件进行身份验证。在许多情况下,您并不需要永不过期的长期访问密钥(如 IAM 用户访问密钥)。相反,您可以创建一个 IAM 角色并生成临时安全凭证。临时安全证书包括访问密钥 ID 和秘密访问密钥,以及一个指示证书何时到期的安全令牌。要了解有关如何使用 IAM 角色而不是长期访问密钥的更多信息,请参阅切换到 IAM 角色 (AmazonAPI).

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

创建一个 IAM 角色,该角色授予对 Amazon Keyspaces 的只读访问权限

  1. 登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色,那么创建角色.

  3. 创建角色页面,下方选择受信任实体的类型,选择Amazon服务. 下面选择用例,选择Amazon EC2,然后选择下一页.

  4. 添加权限页面,下方权限策略,选择亚马逊Keyspaces 只读访问权限从策略列表中,然后选择下一页.

  5. 命名、审阅和创建页面上,为角色输入一个名称,然后查看选择可信实体添加权限部分。您还可以在此页面上为角色添加可选标签。操作完成后,选择创建角色. 请记住此名称,因为您启动 Amazon EC2 实例时将需要它。

要在代码中使用临时安全证书,您可以通过编程方式调用Amazon Security Token ServiceAPIAssumeRole并从上一步中创建的 IAM 角色中提取生成的凭证和会话令牌。然后,您可以使用这些值作为对 Amazon 的后续调用的凭证。以下示例显示了如何使用临时安全证书的伪代码:

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

有关使用 Python 驱动程序实现临时证书以访问 Amazon Keyspaces 的示例,请参阅使用以下命令Connect 亚马逊Keyspaces DataStax适用于 Apache Cassandra 的 Python 驱动程序和 Sigv4 身份验证插件.

有关如何调用 AssumeRoleGetFederationToken 和其他 API 操作的详细信息,请参阅 Amazon Security Token Service API 参考。有关从结果中获取临时安全凭证和会话令牌的信息,请参阅所用开发工具包的文档。可以在主 Amazon 文档页上的 SDKs and Toolkits(开发工具包和工具箱)部分中找到所有 Amazon SDK 的文档。