AWS SDK for Python(Boto)でのAWSアカウント管理について

こんにちは!beardです!

AWS SDK for Python(Boto)では、複数のAWSアカウントを使用するために便利な方法があります。
今回は、pythonの機能であるインタラクティブシェルを利用してその使用例をご紹介します。

AmazonLinuxでのBotoのインストールについては過去の記事『EC2編~Amazon Linux Python Update 2.7~』をご覧ください。

1. botoで操作したいAWSアカウントのアクセスキーとシークレットアクセスキーを設定する。
botoでは、/etc/boto.cfgファイルにAWSアカウントのアクセスキーとシークレットアクセスキーを記述することで読み込んでくれます。
フォーマットは以下のようになっています。

2. 今回の例ではaccepted-userにはIAMでAWSのすべての権限を与えています。
逆に、denied-userにはすべての権限を拒否しています。
これらのプロファイル(=AWSユーザー)をbotoのインタラクティブシェルで操作をしてみます。

3. 次はプロファイルを「denied-user」に変えて別のユーザーとして接続してみましょう。
上記のインタラクティブシェルの続けて実行します。

▼ 簡単な解説 ▼
botoでは、/etc/.cfgにユーザーを記述することでいちいちアクセスキーとシークレットアクセスキーを入力しなくても、プロファイル名を指定するだけでユーザーを切り替えてAWSに接続することができます。
今回の例ではdenied-userには許可を与えていませんので、インスタンスの一覧を取得しようとしても、「You are not authorized to perform this operation.」と拒否されています。

1. /local/i-incetanceID/以下で「rake spec」コマンドでserverspecを実行します。

いかがでしたか?
Serverspecは通常のLinuxコマンドと組み合わせることで様々な項目をテストすることもできます。

次回もお楽しみに!!