AWS Cloud9 にAWS CLI (version2)をインストールした際のメモ
OSはubuntu
現行バージョンを確認
Cloud9ではすでにAWS CLIがインストールされている
$ aws --version
aws-cli/1.18.45 Python/3.6.9 Linux/4.15.0-1065-aws botocore/1.15.45
Version 2 インストール
v2をダウンロード
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
現行バージョンをアンインストール
$ sudo pip3 uninstall awscli -y
インストール
$ sudo ./aws/install
You can now run: /usr/local/bin/aws --version
$ aws --version
aws-cli/2.0.15 Python/3.7.3 Linux/4.15.0-1065-aws botocore/2.0.0dev19
その他の設定
AWS Cloud9 はログインユーザが持つ権限の一時的な認証情報が利用できるため、AWS CLIのアカウント設定をしなくてもすぐ利用できるが、許可されるアクションが制限される。
IAM系ユーザやグループの作成などは今のままでは下記のようにエラーとなる。
$ aws iam create-group --group-name testgroup
An error occurred (InvalidClientTokenId) when calling the CreateGroup operation: The security token included in the request is invalid
回避方法として、一時的な認証(AWS managed temporary credentials)をOFFにし、代わりにロールをアタッチする。
設定方法
- AWS Cloud9 の Prefarences -> AWS Settings -> Credentials でAWS managed temporary credentials をOFFにする
- IAM のロールで ロールの作成をクリックし、ユースケースでEC2を選択
- アタッチするアクセス権限ポリシーを選択(例:AdministratorAccess)
- 作成したロールをCloud9をホストしているEC2にアタッチする
$ aws iam create-group --group-name testgroup
{
"Group": {
"Path": "/",
"GroupName": "testgroup",
"GroupId": "********************",
"Arn": "arn:aws:iam::************:group/testgroup",
"CreateDate": "2020-05-22T12:21:14+00:00"