AESR S3 Config Sender is a Google Chrome extension that enables you to easily update your AESR configuration by pulling the latest configuration from an S3 bucket.
You can download the latest stable version from the Chrome Web Store here.
- Download the latest build.
- Extract the contents of the ZIP file to a local directory on your computer.
- Open Google Chrome and type
chrome://extensions
in the address bar. - Turn on the "Developer mode" toggle switch (if it's not already on).
- Click the "Load unpacked" button and select the directory where you extracted the extension in step 2.
- The extension should now be loaded as an u npacked extension and ready to use.
The Security Token Service (STS) from AWS provides an API action assumeRoleWithSAML. Using the SAML Assertion given by your IDP, the Chrome Extension will call this API action to fetch temporary credentials. (AccessKeyId, SecretAccessKey and SessionToken). This way, there is no need to create some anonymous user in AWS IAM used for executing scripts. This Chrome Extension, however, will make it super easy for you to use your corporate identity for making requests to an S3 bucket for the AWS Extend Switch Roles extension.
Field Name | Description | Example |
---|---|---|
AESR Extension ID | The chrome extension ID of AWS Extend Switch Roles | jpmkfafbacpgapdghgdpembnojdlgkdl |
Region | The region where the AWS S3 objects are stored. | us-west-2 |
Bucket Name | The name of the S3 bucket where the AWS configuration file is stored. | my-s3-bucket |
File Key | The object key for the AESR configuration file stored in the S3 bucket. | configs/my-aws-config.ini |
Sign into AWS using SSO, and the extension will capture the SAML response automatically. Ensure that the user you are signing into has the access required to the bucket where your configuration is stored.
Profiles can now be managed through the extension popup:
- Create and save multiple profiles
- Set a default profile
- Import/Export profiles
- Delete profiles
- Quick sync with selected profile
The extension now requires the following permissions:
- Tabs access
- Storage access
- Web request permissions for SAML processing
To pull the latest AWS configuration from an S3 bucket, enter the required information in the fields and click the "Pull S3 Config" button. The latest configuration will be displayed in the text area below.
Failures to pull the config are generally related to either Bucket Policy, IAM permissions, or the CORS policy from the bucket. You will see a log to the console regarding this.
To send the AWS configuration to AWS Extend Switch Roles, enter the chrome extension ID of AWS Extend Switch Roles. Then copy the AESR Config Sender ID, and put this in the Config sender extension ID:
field in AWS Extend Switch Roles. Once these are saved, in future you can just click the Push to AESR
button.
This section guides you through the process of building the project from the source code. Please follow these steps carefully to ensure a successful build.
Before you begin, ensure you have the following installed:
- Node.js version 22.x (as specified in mise.toml)
- npm (latest version recommended)
-
Clone the repository:
git clone git@github.com:XargsUK/aesr-s3-config-sender.git cd aesr-s3-config-sender
-
Install dependencies:
npm install
-
Development Commands:
npm run clean # Clean build directories npm run build # Build both Chrome and Firefox extensions npm run package # Create distribution packages npm run typecheck # Run TypeScript type checking npm run lint # Run ESLint checks npm run start # Start development server
You can launch browsers with the development extension using VS Code:
- Open the project in VS Code
- Go to the Run and Debug view
- Select either "Launch Chrome with Extension" or "Launch Firefox with Extension"
- Press F5 to start debugging
The project was modernised in v1.0.0 with:
- TypeScript support
- ESLint configuration
- Prettier code formatting
- Modern build system using webpack
- Browser-specific manifest files
- Lucide icons replacing FontAwesome
Contributions are welcome! Please ensure you:
- Follow the TypeScript/ESLint/Prettier configurations
- Run type checking and linting before submitting PRs
- Test on both Chrome and Firefox browsers
This project is licensed under the MIT License.
Please note that this is subject to change depending on the specific license chosen for the project.
AWS Extend Switch Roles was developed and distributed by tilfinltd, who without their work, this plugin wouldn't have been possible. I would like to acknowledge and thank tilfinltd for their contribution.