share facebook facebook facebook twitter twitter menu hatena pocket slack

2021.10.04 MON

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

Shimpei Chiba

WRITTEN BY Shimpei Chiba

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

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

元記事はこちら

https://qiita.com/namely_/items/0966da36fca7624e8443


アイレットなら、AWS で稼働するサーバーを対象とした監視・運用・保守における煩わしい作業をすべて一括して対応し、経験豊富なプロフェッショナルが最適なシステム環境を実現いたします。AWS プレミアコンサルティングパートナーであるアイレットに、ぜひお任せください。

AWS 運用・保守サービスページ:
https://cloudpack.jp/service/aws/maintenance.html

その他のサービスについてのお問合せ、お見積り依頼は下記フォームよりお気軽にご相談ください。
https://cloudpack.jp/contact/form/

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。