7

通过 AWS Identity and Access Management,我在我的 CTO 的 AWS 账户上有一个用户账户(他有一些钱)。

我想使用这个 IAM 用户帐户来设置我自己的实例来 ssh 到它并运行一些 BeautifulSoup python 脚本。

但是,按照本教程,当到达我需要进入安全凭证页面的部分时,我无法访问此页面,并且我被告知我没有查看它的权限。

我向 IAM 经理检查了我的权限,并且我拥有管理权限,这是可能的最高权限(在我看来)。

我可以做些什么来获得这个 X.509 证书?

4

1 回答 1

12

前言

首先,您可能需要重新考虑是否真的需要这些 X.509 证书 - 该教程原则上是正确的:

共有三种类型:访问密钥、X.509 证书和密钥对。第一种和第二种类型允许您连接到 Amazon API。哪种类型的凭证取决于您使用的 API 和工具。一些 API 和工具支持这两种选择,而另一些只支持一种。

但是,现在大多数现代 API 和工具仅通过访问密钥而不是 X.509 证书与 AWS 进行交互。

不幸的是,本教程所基于的 EC2 API 工具并非如此,它确实需要使用 X.509 证书,因为它(大部分)仍然基于旧的 EC2 SOAP API。

更新:EC2 API 工具同时也支持 AWS 访问密钥,因此不推荐使用 X.509 证书

尽管我们不鼓励这样做,但在有限的时间内,您仍然可以使用 EC2_PRIVATE_KEY 和 EC2_CERT 而不是 AWS_ACCESS_KEY 和 AWS_SECRET_KEY。 有关更多信息,请参阅Amazon Elastic Compute Cloud CLI 参考中 API 工具常用选项中的弃用选项。如果您指定两组凭据,命令行工具将使用访问密钥 ID 和秘密访问密钥。

选择

不过,您可能想先看看另一种选择:如果您对 Python 很熟悉,我强烈推荐优秀的botoAmazon Web Services 提供的当前和未来基础设施服务的集成接口),它与访问密钥配合得很好,提供与EC2 API 工具(以及大多数其他 AWS API)几乎相同的功能集,并且由于仅针对较新的 AWS REST API,因此执行速度明显更快。

解决方案

AWS Identity and Access Management (IAM)不支持访问实际的 AWS 账户,它只涵盖AWS 管理控制台,当然还有大多数 AWS API。您需要使用 AWS 账户的登录名和密码(即账户所有者的密码)登录才能访问安全凭证页面。

不过,不再建议这样做(请参阅IAM 概念中的安全凭证部分):

[...] 当您创建 AWS 账户时,AWS 默认为 AWS 账户提供自己的秘密访问密钥和访问密钥 ID。AWS 账户可以使用它们对 AWS 进行 API 调用。我们希望您不会定期使用这些凭据,而只会在最初为您的组织设置管理员组时使用它们。我们建议您的 AWS 账户和您的 AWS 资源之间的所有进一步 API 交互都在用户级别(例如,使用用户的安全凭证)。[强调我的]

但是,您仍然可以通过使用您自己的证书来实现您的目标,如下面的X.509 证书部分所述:

尽管您可以使用 IAM 创建访问密钥,但不能使用 IAM 创建签名证书。但是,您可以使用免费的第三方工具(例如 OpenSSL)来创建证书。[...] 获得签名证书后,您必须将其上传到 IAM;[...]

上传签名证书中说明了如何实际执行后者。

于 2012-01-24T23:38:31.250 回答