EC2 インスタンスに IAM ロールを付与
[履歴] [最終更新] (2015/06/09 09:43:23)

概要

EC2 インスタンスから AWS を利用する場合、AccessKey などを直接 AMI 内に配置する必要はありません。起動時に IAM ロールを指定すれば EC2 はそのロールに付与された権限で AWS を利用できます。鍵を直接 AMI 内に配置しないためセキュリティ上も安心です。

設定例

  1. AWS IAM ロールを新規作成 (Role Name: s3_full_access)
  2. ロールの種類としては EC2 に付与するためのものですので "Amazon EC2" を選択
  3. 付与する権限を選択 (Policy Type: AmazonS3FullAccess) してロールを作成完了
  4. EC2 起動時にロールを選択

動作確認

AWS S3 サブコマンドが実行できる権限が付与されています。

$ aws s3 ls
2015-06-08 15:01:20 hogehoge1234

一般に EC2 インスタンスは自分のメタ情報を、リンクローカルアドレスに対して curl を実行することで確認できます。IAM ロールを付与して起動したため、特に今回は meta-data に iam が追加されています。

$ curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
s3_full_access

鍵情報の存在が確認できます。

$ curl http://169.254.169.254/latest/meta-data/iam/security-credentials/s3_full_access
{
  "Code" : "Success",
  "LastUpdated" : "2015-06-08T14:47:01Z",
  "Type" : "AWS-HMAC",
  "AccessKeyId" : "XXXXXXXXXXXXXXXXXXX",
  "SecretAccessKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "Token" : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "Expiration" : "2015-06-08T21:16:06Z"
}
関連ページ