Amazon EC2編~IAM Roles for EC2インスタンスを立ちあげてみよう!~

**

AWSに対してアクセスをおこなう際の権限を定義するAmazon IAMエンティティになります。

**

IAM roles for EC2インスタンスとは?

**

EC2インスタンス自体が、AWSの各サービスにアクセスする際の権限を設定できる仕組みになります。

今までだと、EC2インスタンス内部からAWSの各サービスにアクセスする際は、アクセスキーIDとシークレットアクセスキーを設定ファイルに登録して権限認証をおこなっていましたが、IAM roles for EC2インスタンスによって無闇に秘密情報の登録をおこなうことなく、安全にAWSの各サービスを利用することができます。

※なお、Amazon IAMの詳細については以下のレシピも参照してください。

■ Amazon IAM編~IAMを使ってみよう!パート①~

■ Amazon IAM編~IAMを使ってみよう!パート②~

では実際に、作業をおこなっていきましょう!

  1. まずは、IAMロールを作成していきます。

AWS管理コンソールにログインしてサービスで「IAM」を選択、下記画面を開き左メニューの「Roles」をクリックします。

20130718_01_01
  1. 画面上部にある「Create New Role」をクリックします。
20130718_01_02
  1. Role Nameを入力して、「Continue」をクリックします。
20130718_01_03
  1. 今回設定するAWS Service Rolesを選択して、「Select」をクリックします。
20130718_01_04
  1. 任意のアクセスポリシーを選択し、「Select」をクリックします。

※なお、今回はAmazon S3へのアクセス権限を設定します。

20130718_01_05
  1. そのまま「Continue」をクリックします。

※なお今回は下記画面にあるように、テンプレートを使用していますが、ポリシーはオリジナルで作成することも可能です。

20130718_01_06

1. 「Create Role」をクリックすれば、IAM Roleの作成は完了です!

20130718_01_07

次に、通常にEC2インスタンスを起動します。

  1. サービスで「EC2」を選択して、下記画面を開き「Launch Instance」をクリックします。
20130718_01_08
  1. そのまま、「Continue」をクリックします。
20130718_01_09
  1. 任意のOSを選択します。
20130718_01_10
  1. 以下項目を設定して、「Continue」をクリックします。

・Number of Instances

・Instance Type

・Availability Zone

  1. ここで肝心のIAMロールの適用をおこないます。

「IAM Role」の項目で、作成した任意のIAM Roleを選択します。

なお、これより先の手順は以前のレシピ『[Amazon EC2インスタンスを立ちあげてみよう!~Amazon Linux編~](/archives/20)』の手順と同様になりますのでそちらのレシピを参照して作業をおこなってください。

これで、IAM roles for EC2インスタンスが立ちあげは完了です!

最後に、きちんとアクセス制限ができているか確認してみます。

  1. 先ほどまでの手順で立ちあげたIAM roles for EC2インスタンスに接続してRDSにアクセスしてみます。

すると、以下のようにRDSは拒否されます。

1# mysql -h test.cccbgtq6fkq1.ap-northeast-1.rds.amazonaws.com -P 3306 -u root -p testdb2Enter password:34ERROR 2003 (HY000): Can't connect to MySQL server on 'test.cccbgtq6fkq1.ap-northeast-1.rds.amazonaws.com' (110)

※今回はAmazon S3にのみアクセスできるように制限を設定したので、RDSにはアクセスできないはずです。なお、EC2インスタンスへの接続およびRDSへのアクセス方法については以下のレシピを参照してください。

■Amazon EC2インスタンスを立ちあげてみよう!~Amazon Linux編~

■Amazon RDS編~EC2インスタンスからDBインスタンスへの接続~

  1. なお、以下のようにS3へは通常にアクセスすることが可能です。
1#s3cmd ls22012-11-21 00:40  s3://aaabaaaaaaaaaaaaaaaa32013-03-16 04:13  s3://kaji.aws-demo.net42013-04-23 08:10  s3://kajitest

※コマンドでのS3への操作については、以下のレシピを参照してください。

■Amazon S3編~s3cmdでS3を操作してみよう!~

これで、すべての作業が完了です!

いかがでしたでしょうか?

今回のようにIAMロールをEC2インスタンスに適用すれば、より安全にAWSを利用することができますので是非、確認してみてください!

次回は『 Amazon CloudFront編~アクセスログを取得してみよう!~ 』と題してお話していきたいと思いますので、お楽しみに!

——————————————————————————————————

ナレコムクラウドのFacebookに『いいね!』をクリックして頂くと

最新のお役立ちレシピが配信されます★

┏━━━━━━━━━━━━━┓

┃ナレコムクラウド Facebook┃

┗━━━━━━━━━━━━━┛

——————————————————————————————————

この記事を書いた人

aws-recipe-user