EC2 上の CentOS7 から goofys で S3 をマウントする(IAM ロール利用編)
EC2 インスタンスから S3 バケットをマウントする手順として、以前に EC2 上の CentOS7 から S3 をマウントする(API 利用編) というメモを書きました。この方法ではアクセスキー/シークレットキーを EC2 インスタンスの中に保存しましたが、IAM ロールを使えば EC2 インスタンス内に情報を保存する必要が無くなり、セキュリティが向上します。
S3 バケットマウント用の IAM ロールを作成する¶
新しいロールの作成¶
IAM で S3 アクセス用のロールを新規作成します。IAM で「ロール → 新しいロールの作成」をクリックします。
ロール名の設定¶
新規作成するロール名を入力します。今回は「Allow_AmazonS3FullAccess」としました。
ロールタイプの選択¶
ロールタイプは (AWS サービスロールの)「Amazon EC2」の右側にある「選択」をクリックします。
ポリシーのアタッチ¶
デフォルトでは多数のポリシーが表示されていますので、フィルターに「s3」と入力して表示を制限し、「AmazonS3FullAccess」のチェックを入れた状態で「次のステップ」をクリックします。
作成されたポリシーの確認¶
これでロールが作成されました。
IAM ロールを EC2 インスタンスに適用する¶
EC2 のインスタンスを新規作成する際に、作成したロールを適用します。
FUSE / git / Go 言語 / goofys のインストール¶
FUSE、git、Go 言語、goofys のインストール手順は、「アクセスキーを使う場合」も「IAM ロールを使う場合」も同じです。
FUSE と git のインストール¶
1 2 |
|
Go 言語のインストール¶
1 2 3 4 5 6 7 8 9 10 11 |
|
goofys のインストール¶
1 2 |
|
AWS の資格情報設定¶
今回の IAM ロールを利用するので、AWS の資格情報を用意する必要はありません(つまり、~/.aws/credentials を作成する必要はありません)。
S3 のバケットをマウントする¶
「IAM ロールを使う」ということは「API アクセス情報は使わない」ということです。つまり、~/.aws/credentials のプロファイル(Profile)情報は使わないので、goofys でバケットをマウントする際に --profile オプションを指定する必要はありません。
1 2 |
|
状態確認¶
s3-mount-with-goofys という名前のバケットをマウントし、df で状態確認した結果は以下の通りです。
1 2 3 |
|