AWS IAM Actions Snippets for VS Code
This AWS IAM Actions Snippets extension equips Visual Studio Code with comprehensive snippets for all AWS IAM actions. It's your essential tool for efficient and accurate IAM policy development.
[!TIP]
Catch AWS waste before and after you deploy.
CloudBurn is a free, open-source CLI that checks your Terraform and CloudFormation for costly patterns before deploy, then finds the waste already running in your AWS account. Run it locally or in CI.

Want it managed across your AWS accounts? CloudBurn Platform runs it for you and keeps scan results in your own account. Join the waitlist for 30% off.
Features
- Comprehensive Coverage: Offers snippets for all AWS IAM actions available across various AWS services.
- Auto-completion: Provides intelligent auto-completion for IAM actions as you type.
- Documentation Links: Quick access to AWS documentation for each IAM action directly from the snippet.
- Flexible Format Support: Supports IAM policies in JSON, but also IAM Policies defined in CloudFormation templates (
.json, .yaml), and Terraform files (.tf).
- Up-to-Date: Regularly updated to reflect the latest AWS IAM actions.
- Smart Hover Information: Supports case-insensitive action names and
* / ? wildcards. Large matches show the total count and the first 100 actions.
Usage
- Install the AWS IAM Actions Snippets extension in VS Code.
- Open a JSON, JSONC, YAML, Terraform, TypeScript, or Python file containing an IAM policy.
- Start typing an IAM action name (e.g.,
s3:Get) in the appropriate place in your policy.
- The extension suggests service prefixes first, then filters actions as you type (for example,
s3:Ge). Completions support Action / NotAction values and CDK / Terraform action arrays.
- Select the desired action to insert it into your policy.
Example of auto-completion in action:

and an example of the hover information:

Note: If auto-completion doesn't trigger automatically, press Ctrl+Space (or Cmd+Space on macOS) to manually invoke IntelliSense.
Requirements and development
Requires VS Code 1.85.0 or newer. IAM data ships with the extension; completion and hover work offline.
VS Code API typings stay pinned to the minimum supported editor version. Update the compiler and other development dependencies independently to retain compatibility with that editor.
CloudFormation .template files open as JSON by default. For YAML templates with that extension, select YAML in the editor's language mode.
The updater checks AWS's JSON service inventory, enriches actions from the Service Authorization Reference, and merges documentation pages sharing a service prefix. Empty inventories, missing metadata, failed requests, removed services, and action-count drops above 5% fail the update before the existing catalog is replaced. Review legitimate service removals or large reductions before rebuilding the catalog.
Use Node 24 (see .nvmrc) and Python 3.14:
npm ci
uv venv --python 3.14
uv pip install --python .venv/bin/python -r src/requirements.txt
source .venv/bin/activate
npm run test:python
npm run validate:catalog
npm test -- 1.85.0
npm test -- stable
Each npm test builds and validates the VSIX, then tests the unpacked package in an isolated VS Code extension host. Reports are saved in .vscode-test/results/. On headless Linux, use xvfb-run -a npm test -- <version>.
To update the catalog:
python src/update-iam-action-snippets.py --workers 12
For a limited development scrape, use a separate output: --test 3 --output .vscode-test/sample-actions.json.
Pull requests validate the catalog, updater, and packaged extension on minimum and stable VS Code. Releases run the same checks, then publish the tested VSIX to both registries. Failed registry jobs can be rerun independently using the retained release artifact.
- AWS IAM Service Principal Snippets completes documented service principals in trust policies and CDK roles.
- AWS IAM Policy Debugger validates policies, explains request matches and saves regression scenarios in VS Code’s Testing panel. It is an unpublished development preview; build a local VSIX to try it.
Support
If you have a feature request or an issue, please let me know on Github
Author
Danny Steenman
