はじめに
なにかの記事を見たり、あるいはaws-cliの促すとおりにAWSのEC2サーバーでaws configure
と入力してしまうことが、特に初心者にはよくあるはずです。そう私のような。
けれどもそのaws configureはもしかしたらセキュリティ的にリスクがある行動かもしれません。なぜならconfigureしたEC2上では、その認証情報(アクセスキーやシークレット)が残り続けるからです。
ここでは「えっもうconfigureしちゃったよ」という人向けに消し方を書いておきます。
結論を先に書いておくと、ホームディレクトリに作成されているはずの.awsを消すだけです。
$ rm -r ~/.aws
まずaws configureがやっていること
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: ap-northeast-1
Default output format [None]: text
こうすると、入力した情報のプロファイルの権限で、AWSの機能にアクセスできるようになりますよね。
この情報を書いたファイルがどこにあるかというと、aws configureを行ったユーザーのホームディレクトリの直下にあります。
例えばec2-userでaws configureしたら、/home/ec2-user/.awsが作成されます。
$ ls -l ~/.aws
-rw------- 1 ec2-user ec2-user 48 Jan 16 13:41 config
-rw------- 1 ec2-user ec2-user 225 Jan 16 14:12 credentials
その.aws隠しディレクトリの下に、configとcredentialsというファイルがあります。
viなどで中身を見たら、入力した情報が書かれていることが確認できるはずです。
$ vi ~/.aws/credentials
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
それを踏まえた上でやること
とても簡単です。ホームディレクトリの.awsフォルダを消します。
$ rm -r ~/.aws
EC2でaws-cliを使うには?
EC2でaws-cliを使うには、基本的にEC2インスタンスそのものに、権限を与えましょう。
例えばS3の読み書きをしたいのであれば、S3の読み書きのできるポリシーを割り当てたロールを、EC2にアタッチします。
そうすることでaws configureをしなくても、.awsがなくても、そのEC2で割り当てられた権限の範囲でaws-cliを使えるようになります。