--- title: "Update IAM settings for your Workspace" chapter: false weight: 18 --- {{% notice info %}} Cloud9 normally manages IAM credentials dynamically. For this workshop we will disable it and rely on the IAM role instead. {{% /notice %}} - Return to your workspace and click the gear icon (in top right corner), or click to open a new tab and choose "Open Preferences" - Select **AWS SETTINGS** - Turn off **AWS managed temporary credentials** - Close the Preferences tab ![c9disableiam](/images/c9disableiam.png) To ensure temporary credentials aren't already in place we will also remove any existing credentials file: ```sh rm -vf ${HOME}/.aws/credentials ``` We should configure our aws cli with our current region as default. {{% notice info %}} If you are [at an AWS event](../aws_event/), ask your instructor which **AWS region** to use. {{% /notice %}} ```sh export ACCOUNT_ID=$(aws sts get-caller-identity --output text --query Account) export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region') ``` Check if AWS_REGION is set to desired region ```sh test -n "$AWS_REGION" && echo AWS_REGION is "$AWS_REGION" || echo AWS_REGION is not set ``` Let's save these into bash_profile ```sh echo "export ACCOUNT_ID=${ACCOUNT_ID}" | tee -a ~/.bash_profile echo "export AWS_REGION=${AWS_REGION}" | tee -a ~/.bash_profile aws configure set default.region ${AWS_REGION} aws configure get default.region ``` ### Validate the IAM role Use the [GetCallerIdentity](https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html) CLI command to validate that the Cloud9 IDE is using the correct IAM role. ``` aws sts get-caller-identity ``` The output assumed-role name should contain: {{< output >}} serverless-observability-workshop-admin {{< /output >}} #### VALID If the _Arn_ contains the role name from above and an Instance ID, you may proceed. {{< output >}} { "Account": "123456789012", "UserId": "AROA1SAMPLEAWSIAMROLE:i-01234567890abcdef", "Arn": "arn:aws:sts::123456789012:assumed-role/serverless-observability-workshop-admin/i-01234567890abcdef" } {{< /output >}} #### INVALID If the _Arn contains `TeamRole`, `MasterRole`, or does not match the role name output above, **DO NOT PROCEED**. Go back and confirm the steps on this page. {{< output >}} { "Account": "123456789012", "UserId": "AROA1SAMPLEAWSIAMROLE:i-01234567890abcdef", "Arn": "arn:aws:sts::123456789012:assumed-role/TeamRole/MasterRole" } {{< /output >}}