[AWS]IAMロールをEC2インスタンスに設定(アタッチ)してみた

EC2インスタンスからAWS SDKやCLIを使用して、AWSリソースを操作する際に、APIのIDが必要となりますが、これをサーバ内に保管するのは、セキュリティ上を考えるとあまりオススメできません。そこで、IAMロールが登場します。これを使うことでサーバ内にAPIのIDを保管せずにAWSリソースの権限を割り充てることができます。今回はIAMロールをEC2インスタンスに設定してみたいと思います。

流れ

1.IAMロールの作成
2.EC2にIAMロールを設定する

設定方法

IAMロールの作成

1.左メニュー欄から[ロール]を選択し、[ロールの作成]をクリックします。

2.[AWSサービス]をクリックし、下のサービスから[EC2]を選択します。

3.下のユースケースの選択は、[EC2]を選択し、[次のステップ:アクセス権]をクリックします。

4.そして、権限を割り当てていきます。今回は例としてS3に対するFULL権限を設定してみます。検索ボックスのところに、s3で検索すると絞り込みができます。割り当てるポリシー名のチェックボックスをクリックします。クリック後に、[次のステップ:確認]を選択します。

5.確認画面では、ロール名の入力をします。また選択したポリシーが表示されていることも確認します。確認が完了したら[ロールの作成]を選択します。これでロールが作成されます。

EC2にIAMロールを設定する

1.EC2インスタンスを右クリック→[インスタンスの設定]→[IAMロールの割り当て/置換]の順に選択します。

2.先程、作成したIAMロールを選択し、[適用]をクリックします。

3.割り当てが完了したので、[閉じる]をクリックします。これでEC2に設定が完了しました。

検証

IAMロールを割り当てたサーバでS3のバケット一覧を表示するコマンドを実行してみると、バケット一覧が表示されることが確認できます。

[ec2-user@ip-10-31-200-249 ~]$ aws s3 ls
2016-05-27 00:27:55 000000000000-testtesttesttest222
2016-03-18 06:33:01 000000000000-test-7779
2016-04-08 03:17:47 000000000000-imput-test-dev-to
2016-04-28 08:10:25 000000000000-output-server-test-dev333666

以上