AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

コンテナに AWS CLI をインストールした後は、

前回 Amazon Linux 2 をコンテナで用意して、aws-cli に必要なコマンドなどを入れて準備しました。

これで、コマンドでなんでもAWSサービス動かせちゃう、と、怖いですよね。いくら Amazon Linux といえども。

ここから、ちょっとだけオマジナイがいるので、書いておきます。

コンテナに AWS CLI いれた後

Amazon Linux 2 コンテナの場合

Amazon Linux 2 は、Linuxの一つのディストリビューションなので、ここまでの手順 だけでは、またコマンドのインストールが終わった段階です。

自分のAWS(情報あれば、ほかもなので、公開範囲はきをつけましょう)を操作するための情報を追加します。

最初に

間違っても rootユーザー / ルートユーザーの情報いれないでくださいね。

ルートアクセスキーとか使おうと思った方は、思いとどまってください。

IAM大事です。



IAMユーザーを用意します

AWS管理コンソールにて、IAMひらいて、コンテナ向けの新しいユーザーを作りましょう。

test とかつけちゃうと、後から、どこから使われてるユーザーか不明になるので、僕は、こんな名称にしてみました。

docker-aws-cli-user


dockerからしか使わないユーザーなので、マネジメントコンソールは不要です。

f:id:hidehara:20200415223255p:plain
IAMユーザー作成中

次に、このIAMユーザーに許すこと。

今の段階だと、やってみたいことです。

EC2とりあえずコマンドで作れたりしたらおもろいかなとか、S3を楽に管理したいのよねぇとか。そういうのです。

EC2なら、何でもできてOKな場合は、このようにしてみるといいのかも。

f:id:hidehara:20200415223423p:plain
IAM ユーザーの権限

その他、タグとかはお好みで最後までいきましょう。

IAMユーザーのアクセスキーをメモ

STEP5 で表示された、この2つを、この後つかいます。

f:id:hidehara:20200415223631p:plain
アクセスキー


※シークレットアクセスキー は、二度と表示されないので、メモ忘れたら、もう一度消して作り直しましょう

コンテナに戻ってちょっと作業

つくったコンテナに戻って、aws configure コマンド投入で、終わりです。

$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json

※公式にある例をそのままコピー


これでめでたく、EC2を aws-cli でフルコントロールできるコンテナになりました。


この記事とかいかがでしょうか?

configure ってなにしとるん?

実行してるユーザーディレクトリ配下に、プロファイルと呼ばれるファイルを用意してくれます。

コンテナの場合は root になるので、ここにはいりました。

bash-4.2# ls -al /root/.aws/
total 16
drwxr-xr-x 2 root root 4096 Apr 14 03:18 .
dr-xr-x--- 1 root root 4096 Apr 14 03:18 ..

  • rw------- 1 root root 48 Apr 14 03:18 config
  • rw------- 1 root root 116 Apr 14 03:18 credentials

bash-4.2# cat /root/.aws/config
[default]
output = json
region = ap-northeast-1

bash-4.2# cat /root/.aws/credentials
[default]
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

その他

今回、開発環境ローカルdocker前提に 「コンテナに AWS CLI いれた後」 ってことで書きました。

もし「無償期間だし Amazon Linux 2 は EC2インスタンスなんだけど」

とか、

「チーム開発してて、検証環境と本番環境使い分けたい」

とかには、また別の方法用意されてます。


それにしても、IAM、これで無課金はすごい! 革命的。クラウド自体の、(人じゃない)ユーザーの考え方が素敵すぎです。

# そのうち、そんな話題もかけたらと