如何测试AWS Command Line Tools的凭据

时间:2015-08-05 15:33:31

标签: amazon-web-services aws-cli

是否有可以传递给aws实用程序的命令/子命令,可以1)验证~/.aws/credentials文件中的凭据是否有效,以及2)给出一些用户凭据的指示属于?我正在寻找一些通用的东西,它不会对用户拥有IAM或任何特定服务的权限做出任何假设。

此用例是部署时完整性检查,以确保凭据良好。理想情况下,如果存在无效凭证,则可以通过某种方式检查返回值并中止部署。

2 个答案:

答案 0 :(得分:120)

使用GetCallerIdentity
aws sts get-caller-identity

与其他API / CLI调用不同,它始终有效,无论您的IAM权限如何。

您将获得以下格式的输出:

{
    "Account": "123456789012", 
    "UserId": "AR#####:#####", 
    "Arn": "arn:aws:sts::123456789012:assumed-role/role-name/role-session-name"
}

完全ARN format将取决于凭据的类型,但通常包括(人)用户的名称。

它使用标准AWS CLI error codes成功时为0,如果没有凭据则为255。

答案 1 :(得分:44)

有一种直接的方式 - aws iam get-user可以告诉您的身份(当前的IAM用户) - 只要用户具有iam权限。

有几个CLI调用支持--dry-run标记,如aws ec2 run-instances,您可以告诉您是否有必要的config / cred来执行操作。

还有--auth-dry-run检查您是否具有该命令所需的权限,而不实际运行该命令。如果您具有所需的权限,则该命令将返回DryRunOperation;否则,它返回UnauthorizedOperation。 [来自AWS Documentation - Common Options]

您可以从管理控制台列出IAM访问密钥,您可以交叉检查以查看谁被分配了哪个密钥。

了解哪个用户/角色具有哪些权限的最佳方式是使用IAM Policy Simulator