0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

EmbulkでRDS→S3へ転送する際に、Access key,Secret keyを使わず、IAMロールを使う

Posted at

What's this~これは何~

こちらの記事で、S3 API callを行う際に、IAMユーザーを作成し、Access key,Secret keyを設定ファイルにベタ書きしていたのですが、やはりこれはセキュアとは言えないなと感じておりました。

冷静に考えてみたら、IAMロールでできないはずがないよな、となり、方法を探してみました。

今回は、IAMロールを使ってS3 API callを行いました。

前回との相違点

Access key,Secret keyをコメントアウトしています。
AmazonS3FullAccessをポリシーとして、IAMロールを作成し、EC2へアタッチしています。
auth_method: instanceを追加しています。
これでインスタンスプロファイルを見に行ってくれます。

/// Embulk設定ファイル編集
/// configファイル作成する。ディレクトリなども適当にconfigファイルを作成する。
/// yamlファイルは空白の数を間違えると、エラー吐くので注意。
vi embulk_mysql/config.yml

 in:
   type: mysql
   user: "admin"
   password: "パスワード"
   database: "test_"
   table: "item"
   host: "RDSエンドポイント"
   parser:
    type: json
 out:
   type: s3
   path_prefix: mysql/out(任意の名前を設定)
   file_ext: .json
   bucket: バケット名
   endpoint: s3-ap-northeast-1.amazonaws.com(使用しているS3のリージョンに合わせる)
   #access_key_id: アクセスキー
   #secret_access_key: シークレットアクセスキー
   formatter:
    type: csv
   auth_method: instance

総括

メモではありますが、どなたかの手助けになれば幸いです。
どこか変な点、誤まり等あればコメントでお知らせいただければ助かります。

参考

https://github.com/embulk/embulk-input-s3
https://dev.classmethod.jp/articles/do_you_know_iaminstanceprofile/
https://techblog.lclco.com/entry/2018/04/03/080000

参考にさせていただきました。ありがとうございます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?