I know the syntax is very ugly but my script below is working fine except "--query" flag of awscli. It's deactivating the old keys and generating the new one for each user. I want the script to write the new generated secret access keys to the txt file that I pointed. It fails and just writing "none" to the text file. I suppose that code after "--query" flag is not working properly. On the other hand there is no output of this command which may show the error.

Here is the code:


declare -i counter=11
declare -i counter2=14

for i in {1..3}

aws iam update-access-key --access-key-id  $(aws iam list-access-keys --user-name $(aws iam get-group --group-name Devs | awk -v counter1=$counter 'NR==counter1' | awk -F\" '{print $4}')) --status Inactive --user-name $(aws iam get-group --group-name Devs | awk -v counter1=$counter 'NR==counter1' | awk -F\" '{print $4}')
aws iam create-access-key --user-name $(aws iam get-group --group-name Devs | awk -v counter1=$counter 'NR==counter1' | awk -F\" '{print $4}') --query 'AccessKey[*].[Username,AccessKeyId,SecretAccessKey]' --output text >> /Users/sampleuser/Desktop/AccessKeyLogs/KeyLogger.txt 


Here is the sample output of create-access-key command(I wanted it as text):

    "AccessKey": {
        "UserName": "Bob",
        "Status": "Active",
        "CreateDate": "2015-03-09T18:39:23.411Z",
        "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
        "AccessKeyId": "AKIAIOSFODNN7EXAMPLE"
  • The way to debug this sort of issue is to break it down. Separate each sub command and run them individually. Add echo statements and check their output. Since we cannot run your script (we don't have access to your machine), you will need to give us the output of each of the subcommands you are running. – terdon Feb 8 at 11:22

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.