我想使用 PowerShell 管理我的 AWS 环境。我们正在通过 IAM 角色获取访问权限。我在为 IAM 角色生成访问密钥和私有密钥时遇到问题。有人可以指导我如何生成这些密钥。
IAM角色只能由IAM 用户使用。这是因为用户需要向 AWS 进行身份验证以证明他们是该用户。然后,这将提供 IAM 用户凭证。
如果随后希望使用角色,则可以使用用户凭据调用Use-STSRole
,这将代入角色并返回一组与角色关联的凭据。(注意:凭据将在一段时间后过期,通常为一小时。
有关更多详细信息,请参阅:切换到 IAM 角色(适用于 Windows PowerShell 的工具)
您不会为角色生成 IAM 访问密钥/私有密钥。AWS 会为您生成这些内容,并使它们在实例的元数据中可用。
如果您已正确安装 PowerShell 和 AWS Tools,则适用于 Windows PowerShell 的 AWS Tools 将自动从实例的元数据中提取访问密钥/私有密钥。
此链接将提供有关 PowerShell 和 IAM 角色的更多信息:
适用于 EC2 的 IAM 角色
[新评论后更新]
如果您的目标是为新用户生成 IAM 访问密钥,请登录 AWS 控制台,转到 IAM,转到用户,添加用户,单击"编程访问",然后单击为用户设置权限,然后通过创建用户完成操作。下一个屏幕将是访问键。您需要下载(或复制)秘密访问密钥,因为它不会再次显示。
对于现有用户,单击该用户,单击"安全凭证"选项卡,然后单击"创建访问密钥"按钮。复制或下载密钥。注: 您无法访问以前创建的访问密钥。如果您丢失了秘密访问密钥,则必须生成新的密钥。
管理您的 AWS 账户的访问密钥
根据 AWS Doc 的说法,有一种方法可以通过 API:
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" –v http://169.254.169.254/latest/meta-data/iam/security-credentials/*role_name*
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html