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://www.iret.co.jp/contact/service/form/