web-dev-qa-db-ja.com

AWS Command Line Toolsの認証情報をテストする方法

1)~/.aws/credentialsファイルの資格情報が有効であることを確認し、2)資格情報がどのユーザーに属しているかを示すことができるawsユーティリティに渡すことができるコマンド/サブコマンドはありますか?ユーザーがIAMまたは特定のサービスへのアクセス許可を持っていることを想定していない汎用的なものを探しています。

この使用例は、資格情報が正しいことを確認するための展開時の健全性チェックです。理想的には、戻り値をチェックし、無効な資格情報がある場合にデプロイを中止する何らかの方法があるでしょう。

103
smitelli

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形式 は、資格情報のタイプによって異なりますが、多くの場合、(人間の)ユーザーの名前が含まれます。

標準の AWS CLIエラーコード を使用します。成功した場合は0、資格情報がない場合は255を返します。

143
Jason

ユーザーにiam権限があれば、aws iam get-userはあなたが誰であるか(現在のIAMユーザー)の詳細を表示します。

--dry-runのようなaws ec2 run-instancesフラグをサポートするCLI呼び出しがいくつかあり、操作を実行するために必要なconfig/credがあるかどうかを示します。

コマンドを実際に実行せずに、コマンドに必要な権限があるかどうかを確認する--auth-dry-runもあります。必要な権限がある場合、コマンドはDryRunOperationを返します。それ以外の場合は、UnauthorizedOperationを返します。 [From AWSドキュメント-共通オプション ]

Management ConsoleからIAMアクセスキーをリストできます。これをクロスチェックして、誰がどのキーを割り当てられているかを確認できます。

どのユーザー/ロールがどの特権を持っているかを理解する最良の方法は、 IAM Policy Simulator を利用することです。

46
Naveen Vijay