

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

# 使用以下命令对您的亚马逊 Neptune 数据库进行身份验证 AWS Identity and Access Management
<a name="iam-auth"></a>

AWS Identity and Access Management (IAM) AWS 服务 可帮助管理员安全地控制对 AWS 资源的访问权限。IAM 管理员控制可以*通过身份验证*（登录）和*授权*（具有权限）使用 Neptune 资源的人员。您可以使用 IAM AWS 服务 ，无需支付额外费用。

您可以使用 AWS Identity and Access Management (IAM) 对您的 Neptune 数据库实例或数据库集群进行身份验证。启用 IAM 数据库身份验证后，必须使用签 AWS 名版本 4 对每个请求进行签名。

AWS 签名版本 4 将身份验证信息添加到 AWS 请求中。出于安全考虑，对启用了 IAM 身份验证的 Neptune 数据库集群的所有请求必须使用访问密钥签名。此密钥由访问密钥 ID 和私有访问密钥组成。身份验证在外部是使用 IAM policy 进行管理的。

Neptune 在连接时进行身份验证，对于 WebSockets 连接，它会定期验证权限以确保用户仍然可以访问。

**注意**  
建议不要撤消、删除或轮换与 IAM 用户关联的凭证，因为它不会终止任何已打开的连接。
每个数据库实例的并发 WebSocket 连接数以及连接可以保持打开状态的时间都有限制。有关更多信息，请参阅 [WebSockets 极限](limits.md#limits-websockets)。

## IAM 的用法取决于您的角色
<a name="security-iam-audience"></a>

您的使用方式 AWS Identity and Access Management (IAM) 会有所不同，具体取决于您在 Neptune 中所做的工作。

**服务用户** – 如果使用 Neptune 服务来完成任务，则管理员会为您提供使用 Neptune 数据面板所需的凭证和权限。由于您需要更多的访问权限来完成您的工作，因此了解如何管理数据访问权限可帮助您从管理员请求适合的权限。

**服务管理员** – 如果您在公司负责管理 Neptune 资源，则您可能可以访问 Neptune 管理操作，这些操作与 [Neptune 管理 API](api.md) 相对应。确定服务用户需要哪些 Neptune 数据访问操作和资源才能完成其工作也可能是您的任务。然后，IAM 管理员可以应用 IAM policy 来更改您的服务用户的权限。

**IAM 管理员** – 如果您是 IAM 管理员，您需要编写 IAM policy 来管理 Neptune 的管理和数据访问。要查看您可以使用的基于 Neptune 身份的示例策略，请参阅[使用不同类型的 IAM policy 控制对 Neptune 的访问权限](security-iam-access-manage.md#iam-auth-policy)。

## 使用身份进行身份验证
<a name="security-iam-authentication"></a>

身份验证是您 AWS 使用身份凭证登录的方式。您必须以 IAM 用户身份进行身份验证 AWS 账户根用户，或者通过担任 IAM 角色进行身份验证。

您可以使用来自身份源的证书 AWS IAM Identity Center （例如（IAM Identity Center）、单点登录身份验证或 Google/Facebook 证书，以联合身份登录。有关登录的更多信息，请参阅《AWS 登录 用户指南》**中的[如何登录您的 AWS 账户](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)。

对于编程访问， AWS 提供 SDK 和 CLI 来对请求进行加密签名。有关更多信息，请参阅*《IAM 用户指南》*中的[适用于 API 请求的AWS 签名版本 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。

### AWS 账户 root 用户
<a name="security-iam-authentication-rootuser"></a>

 创建时 AWS 账户，首先会有一个名为 AWS 账户 *root 用户的*登录身份，该身份可以完全访问所有资源 AWS 服务 和资源。我们强烈建议不要使用根用户进行日常任务。有关要求根用户凭证的任务，请参阅*《IAM 用户指南》*中的[需要根用户凭证的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

### IAM 用户和群组
<a name="security-iam-authentication-iamuser"></a>

*[IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*是对某个人员或应用程序具有特定权限的一个身份。建议使用临时凭证，而非具有长期凭证的 IAM 用户。有关更多信息，请参阅 *IAM 用户指南*[中的要求人类用户使用身份提供商的联合身份验证才能 AWS 使用临时证书进行访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)指定一组 IAM 用户，便于更轻松地对大量用户进行权限管理。有关更多信息，请参阅*《IAM 用户指南》*中的 [IAM 用户使用案例](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)。

### IAM 角色
<a name="security-iam-authentication-iamrole"></a>

*[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*是具有特定权限的身份，可提供临时凭证。您可以通过[从用户切换到 IAM 角色（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)或调用 AWS CLI 或 AWS API 操作来代入角色。有关更多信息，请参阅《IAM 用户指南》**中的[担任角色的方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)。

IAM 角色对于联合用户访问、临时 IAM 用户权限、跨账户访问、跨服务访问以及在 Amazon EC2 上运行的应用程序非常有用。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。