Generating confluence pages from AWS Tag Editor CSVs

Tag editor

Some time ago, I was working on an AWS resource inventory and realized I needed a clean, structured way to present it in Confluence - especially since not everyone on the team had direct access to the AWS console. Manually updating pages was time-consuming and error-prone, so I built a tool to automate that process.
The aws-csv-to-confluence transforms CSV files exported from the AWS Tag Editor into structured Confluence pages, with one page per service (like EC2, S3, Lambda, etc.). It’s simple, small, and saved me a ton of time. Maybe it’ll be useful for someone else too.

What is that tool about?

The aws-csv-to-confluence is a simple CLI utility that converts AWS CSV exports (as said, from AWS Tag Editor) into a structured set of Confluence pages - one per service. It’s written in Python, packaged via Poetry, and optional Dockerfile.

It reads your exported CSV, groups resources by service, and creates or updates corresponding pages in Confluence using the Atlassian Python API.

Where and how to get CSV file?

To export all your AWS resources, start by logging in to the AWS Management Console. Then, navigate to the Tag Editor, as shown below.

Tag editor

In the Tag Editor:

  • Select All regions
  • Choose All supported resource types
  • Click Search resources
Tag editor

After a few moments (depending on the size of your project), all resources will be listed. Download the file - this will be the source input for the tool.

(Tip: You can filter resources however you like - by region, specific tags, or anything else available in the AWS Tag Editor. The tool will generate Confluence pages from any valid CSV you provide.)

What do I get as a result?

As a result, this tool will create a number of Confluence pages under provided --parent page.

Example pages

Each page contains a simple Confluence table listing key attributes like identifier, type, region, and ARN.

Example page

Since this is Confluence, you can easily sort the table by any column using the table headers.

Quick start

Before you begin, make sure you have:

  • An Atlassian API token
  • The parent Confluence page ID
    (Tip: You can find it in the page URL - look for the pageId= parameter.)

Option 1: run locally with Poetry

Clone the repository and install dependencies using Poetry:

git clone https://github.com/dunterov/aws-csv-to-confluence.git
cd aws-csv-to-confluence
poetry install

Then run the script:

poetry run aws-csv-to-confluence \
    --user alice@example.com \
    --token <ATLASSIAN_TOKEN> \
    --url https://mycorp.atlassian.net/wiki \
    --parent 123456789 \
    --file ./resources.csv \
    --subtitle prod \
    --clean

Option 2: use Docker

If you’d rather not install Poetry, you can build and run the tool with Docker:

git clone https://github.com/dunterov/aws-csv-to-confluence.git
cd aws-csv-to-confluence

docker build -t aws-csv-to-confluence .

docker run --rm -v `pwd`/resources.csv:/resources.csv aws-csv-to-confluence \
    --user alice@example.com \
    --token <ATLASSIAN_TOKEN> \
    --url https://mycorp.atlassian.net/wiki \
    --parent 123456789 \
    --file /resources.csv \
    --clean

For more details, check out the README.

Final thoughts

This tool is a classic “scratch-my-own-itch” project. It saved me time - and hopefully, it’ll do the same for you or your team.
In my setup, I’ve built some automation around it, so every week I get a fresh, clean AWS inventory right inside Confluence. If you’re managing AWS resources and need a clear, structured view in Confluence, give it a try. The code is open source under the MIT license. Feedback, issues, and contributions are always welcome.

Thanks for reading! If this tool helps you - or if you have suggestions to make it better - feel free to open an issue or submit a pull request.

See you!

Written on July 9, 2025