3. Create publishing user credentials and locked-down IAM policy

We’ll use this account to publish Mojito JS containers from your IDE and/or CI pipeline. It’s a good practice to lock down the permissions on these users to the specific files/folders they need.

Before you continue - Haven’t got a Cloudfront distribution & S3 container setup? Check out the guide here.

Create an account in Amazon IAM

  1. Log in to Amazon IAM and go to the users section:

Step 1

  1. Now hit the big blue Create User button to open the dialog to add a new user. Assign them a descriptive username and give them Programmatic access:

Step 2

  1. Continue to the user’s permissions and assign them to a group with the appropriately locked down Policy:

Step 3

If you don’t have one yet, we suggest creating a policy through IAM’s visual editor.

We ensure users are locked down to the specific resources they require:


...
    "Resource": [
        "arn:aws:s3:::mojito-example/js/container-name.js",
        "arn:aws:s3:::mojito-example/jsdev/container-name*",
        "arn:aws:s3:::mojito-example"
    ]
...

This ensures access to your other S3 buckets and containers’ environments are locked down tightly. Meanwhile, wildcards come in handy for publishing container-name.pretty.js or setting up other blanket policies.

Step 3B

  1. (Optional) Add tags to the user if you need them, or skip to the next step

Step 4

  1. Review the user’s settings and if all is OK, hit Create user.

Step 5

  1. Take note of the user’s Access Key ID and Secret - these are the credentials Mojito’s build script will use to publish to AWS from your IDE or Bitbucket Pipeline.

Step 6

Install and set up the AWS CLI tool (to allow publishing via the CLI)

Follow Amazon’s AWS CLI installation & setup guide using the credentials you created in Step #1. We won’t cover this here.

Now you can publish straight from your IDE:


npm run deploy

And if your user has access to production, they can push to your configured production environment through the --production flag:


npm run build && npm run publish --production

Repeat this step for other users

We suggest adding the following users:

For easy maintenance, use roles and groups that have your Mojito policies attached.

Next steps

Continue to set up Bitbucket Pipelines for Continuous Integration from a Web UI.

Or if you’re publishing via the CLI, you may want to install Mojito JS into your site.