Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.
  • Labs icon Lab
  • A Cloud Guru
Google Cloud Platform icon
Labs

Renewing IAM Access Keys with Ansible

Rotating AWS access keys is an important part of an overall security strategy. Ansible can help us manage this process. In this exercise, we will see how to work with AWS IAM user keys using Ansible.

Google Cloud Platform icon
Labs

Path Info

Level
Clock icon Intermediate
Duration
Clock icon 15m
Published
Clock icon Jul 19, 2019

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Table of Contents

  1. Challenge

    Create `/home/ansible/keyUpdate.yml` and Add an Ansible Play that Removes the Old Access Keys for the IAM User `testuser` and Creates a New Set, Stored in `/home/ansible/newkey.txt`

    After logging into the EC2 instance, run su - ansible to become the ansible user. The password is the same as it is for cloud_user.

    • Create the playbook and edit it such that it resembles the following:

      - hosts: localhost
        gather_facts: no
        vars_files:
          - keys.yml
        tasks:
          - name: Get access key
            iam:
              aws_access_key: "{{ AWS_ACCESS_KEY_ID }}"
              aws_secret_key: "{{ AWS_SECRET_ACCESS_KEY }}"
              region: "{{ AWS_REGION}}"
              iam_type: user
              name: testuser
              state: present
            register: iam_info
      
          - name: Remove original key
            iam:
              aws_access_key: "{{ AWS_ACCESS_KEY_ID }}"
              aws_secret_key: "{{ AWS_SECRET_ACCESS_KEY }}"
              region: "{{ AWS_REGION}}"
              iam_type: user
              name: testuser
              state: update
              access_key_ids: "{{ iam_info.user_meta.access_keys[0].access_key_id }}"
              access_key_state: remove
      
          - name: Create new key
            iam:
              aws_access_key: "{{ AWS_ACCESS_KEY_ID }}"
              aws_secret_key: "{{ AWS_SECRET_ACCESS_KEY }}"
              region: "{{ AWS_REGION}}"
              iam_type: user
              name: testuser
              state: update
              access_key_state: create
            register: new_key
      
          - name: Store new access key information
            lineinfile:
              create: yes
              path: /home/ansible/newkey.txt
              mode: 0600
              line: "{{ new_key.created_keys[0].access_key_id }}"
      
          - name: Store new secret key information
            lineinfile:
              path: /home/ansible/newkey.txt
              line: "{{ new_key.created_keys[0].secret_access_key }}"
      
  2. Challenge

    Run the `/home/ansible/keyUpdate.yml` Playbook to Perform the Required Tasks

    • Run the following command:
      • ansible-playbook /home/ansible/keyUpdate.yml

The Cloud Content team comprises subject matter experts hyper focused on services offered by the leading cloud vendors (AWS, GCP, and Azure), as well as cloud-related technologies such as Linux and DevOps. The team is thrilled to share their knowledge to help you build modern tech solutions from the ground up, secure and optimize your environments, and so much more!

What's a lab?

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Provided environment for hands-on practice

We will provide the credentials and environment necessary for you to practice right within your browser.

Guided walkthrough

Follow along with the author’s guided walkthrough and build something new in your provided environment!

Did you know?

On average, you retain 75% more of your learning if you get time for practice.

Start learning by doing today

View Plans