O Cloud9 normalmente gerencia as credenciais do IAM dinamicamente. No momento, isso não é compatível com o plug-in aws-iam-authenticator, por isso, vamos desativá-lo e confiar na role do IAM.
Feche a aba Preferências
Para garantir que as credenciais temporárias ainda não estejam em vigor, também removeremos qualquer arquivo de credenciais existente:
rm -vf ${HOME}/.aws/credentials
Nós devemos configurar nosso aws cli com nossa região atual como padrão:
export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r .region)
echo "export AWS_REGION=${AWS_REGION}" >> ~/.bash_profile
aws configure set default.region ${AWS_REGION}
aws configure get default.region
Use o comando da CLI GetCallerIdentity para validar se o Cloud9 IDE está usando o IAM role.
Primeiro, obtenha o nome da Role do IAM na AWS CLI.
INSTANCE_PROFILE_NAME=`basename $(aws ec2 describe-instances --filters Name=tag:Name,Values=aws-cloud9-${C9_PROJECT}-${C9_PID} | jq -r '.Reservations[0].Instances[0].IamInstanceProfile.Arn' | awk -F "/" "{print $2}")`
aws iam get-instance-profile --instance-profile-name $INSTANCE_PROFILE_NAME --query "InstanceProfile.Roles[0].RoleName" --output text
A saída é o nome da role.
modernizer-workshop-cl9
Compare isso com o resultado de
aws sts get-caller-identity
Se o Arn contiver o nome da role acima e um ID da instância, você poderá continuar.
{
"Account": "123456789012",
"UserId": "AROA1SAMPLEAWSIAMROLE:i-01234567890abcdef",
"Arn": "arn:aws:sts::123456789012:assumed-role/modernizer-workshop-cl9/i-01234567890abcdef"
}
Se o _Arn contiver TeamRole
, MasterRole
, ou não corresponde ao nome da role, DO NOT PROCEED. Volte e confirme as etapas nesta página.
{
"Account": "123456789012",
"UserId": "AROA1SAMPLEAWSIAMROLE:i-01234567890abcdef",
"Arn": "arn:aws:sts::123456789012:assumed-role/TeamRole/MasterRole"
}