通过AWS身份和访问管理,我有一个用户帐户到我的CTO的AWS账户(有一些钱)。
我想使用这个IAM用户帐户来设置我自己的实例以ssh到它并运行一些BeautifulSoup python脚本。
然而,在this tutorial之后,当到达我需要进入Security Credentials页面的部分时,我无法访问此页面而且我被告知我没有授权查看它。
我使用IAM管理器检查了我的权限,并且我拥有管理权限,最高可能的许可(所以在我看来)。
如何获得此X.509证书?
答案 0 :(得分:12)
首先,您可能想重新考虑是否确实需要这些X.509证书 - 原则上该教程是正确的:
有三种类型:访问密钥,X.509证书和密钥对。 第一种和第二种类型允许您连接到Amazon API。 哪种类型的凭据取决于您使用的API和工具。 一些API和工具支持这两种选择,而其他API仅支持 之一。
但是,现在大多数现代API和工具只通过访问密钥而不是X.509证书与AWS进行交互。
不幸的是,这不是本教程所基于的EC2 API工具的情况,实际上需要使用X.509证书,因为(大部分)仍然是基于较旧的EC2 SOAP API。击>
更新:EC2 API工具同时也支持AWS访问密钥和deprecated using X.509 certificates:
虽然我们不鼓励它,但在有限的时间内你仍然可以使用 EC2_PRIVATE_KEY和EC2_CERT而不是AWS_ACCESS_KEY和 AWS_SECRET_KEY。有关详细信息,请参阅Common Options中的弃用选项 适用于Amazon Elastic Compute Cloud CLI中的API Tools 参考。如果指定两组凭据,则命令行 工具使用访问密钥ID和秘密访问密钥。
你可能想先看看另一种方法:如果你对Python感到满意,我强烈推荐优秀boto( Amazon Web提供的当前和未来基础设施服务的集成界面服务)与访问密钥配合使用,提供与 EC2 API工具(以及大多数其他AWS API)几乎相同的功能集,并且由于针对较新的AWS而执行得更快仅限REST API。
AWS Identity and Access Management (IAM)不支持访问实际的AWS账户,它当前只涵盖AWS Management Console和大多数AWS API。您需要使用AWS账户的登录名和密码(即账户所有者的登录名和密码)登录才能访问Security Credentials页面。
不建议这样做(请参阅IAM Concepts中的安全凭证部分):
[...]当您创建AWS账户时,AWS会给出 默认情况下,AWS会将其自己的秘密访问密钥和访问密钥ID帐户。 AWS账户可以与AWS进行API调用。 我们希望如此 您不会定期使用这些凭据,但会使用它们 只是为了初步设置管理员组 组织即可。我们建议所有进一步的API之间进行交互 您的AWS账户和您的AWS资源位于用户级别(for 例如,使用用户的安全凭证)。 [强调我的]
然而,您仍然可以通过使用自己的证书来实现目标,如 X.509证书部分中所述:
虽然您可以使用IAM创建访问密钥,但您无法使用IAM 创建签名证书。但是,您可以使用免费的第三方 诸如OpenSSL之类的工具来创建证书。 [...]你有了 签名证书,你必须上传到IAM; [...]
Uploading a Signing Certificate中说明了如何实际执行后者。