[トップページ] [FAQ 一覧]

対象:ポリシー

AWSのロールとポリシーを理解できない方への簡単なサンプル





ロールを理解する


ポリシー、ロールがなかなか理解できない人のために簡単なサンプルを紹介します。
EC2 インスタンスにS3へのアクセスを与えるロールのサンプルです。

概要


以下の手順で検証を行います。
・Windows インスタンスに cli環境をインストール (awsコマンド) 
参考:
WindowsのAWS cli環境を準備する手順
cli のキーの登録による環境設定方法

・S3バケットを作成
・インスタンスにS3内のファイルへアクセス可能なポリシーを作成
・Windows インスタンスにロールを適用
・Windows インスタンスからアクセス可能なことを確認


手順




(1)現状の確認
まず何も設定していない状態ではWindows EC2インスタンスからS3のバケットにアクセスすると以下のエラーが発生することを確認します。


C:\>aws s3 ls s3://<バケット名>/
Unable to locate credentials. You can configure credentials by running "aws configure".


C:\>aws s3 cp --region ap-northeast-1 s3://<バケット名>/test.txt .
fatal error: Unable to locate credentials



(2)ポリシーを作成
AWS 管理コンソールよりポリシーを作成します。


{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::<バケット名>",
"arn:aws:s3:::<バケット名>/*"
]
}
]
}



(*)バケットとオブジェクトの2行が必要な点に注意してください。
具体的には以下の2行です。

"arn:aws:s3:::<バケット名>",
"arn:aws:s3:::<バケット名>/*"


(3)ロールを作成
EC2インスタンスに上記のポリシーを適用するロールを作成します。


(4)
インスタンスに対して IMA ロールを割り当てます。新しいバージョンでは即座に適用されます。
古いバージョンではインスタンス起動前にロールをアサインする必要がありました。


(5)クレデンシャルの確認
メタデータでクレデンシャルを確認します。

ブラウザで以下をアクセスするとクレデンシャルが表示されます。
http://169.254.169.254/latest/meta-data/iam/security-credentials/s3_test_role


{
"Code" : "Success",
"LastUpdated" : "2018-07-01T08:23:55Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "**********************",
"SecretAccessKey" : "****************************************",
"Token" : "*****.....*****",
"Expiration" : "2018-07-01T14:59:49Z"
}




(6)最終結果
以下の通り無事コマンドが成功するようになりました。


C:\>aws s3 ls s3://<バケット名>/
2018-07-01 06:42:31 5 test.txt


C:\>aws s3 cp --region ap-northeast-1 s3://<バケット名>/test.txt .
download: s3://<バケット名>/test.txt to .\test.txt


【超重要】本ページは2018/07/28に記載されました。情報が古くなっている可能性があります。








[ 一覧に戻る]


【注意事項】本ページの内容は個人的に調査した結果がであり内容が正しいことは保証されません。
またAWSサービスは常に改良、アップデートされており本ページの内容が古く誤った内容になる可能性もあります。変更になっても本ページが正しく更新されるとは限りません。
あくまでも参考程度でご覧ください。内容により発生したいかなる時間的損害、金銭的損害、その他の損害に関しても何人も保証しません。