CyberduckがAWS STSとAWS認証情報ファイルに対応/IAM RoleでS3の利用が可能になりました
はじめに
こんにちは植木和樹@上越オフィスです。S3にファイルをアップロードする際にCyberduckを利用されている方も多いのではないでしょうか。
Cyberduck のバージョン6.7.0以降で、AWS STS を使用した一時的な認証情報とAWS認証情報ファイル(~/.aws/credentials)に対応しました!
機能要望から実に3年。待望の機能追加です。
STS設定方法
設定方法は下記の公式マニュアルを参照してください。
と言いたいところですが、こちら英語しかなく、ページが文字で溢れておりどこを見ればいいか分かりづらい感があります。
参照してほしいのはこちらの箇所です。
Connecting using AssumeRole from AWS Security Token Service (STS)
Version 6.7.0 or later required Instead of providing Access Key ID and Secret Access Key, authenticate using temporary credentials from AWS Security Token Service (STS) with optional Multi-Factor Authentication (MFA).
Download the S3 (Credentials from AWS Security Token Service) profile for preconfigured settings. You must provide configuration in the standard credentials property file ~/.aws/credentials from AWS Command Line Interface. Configure a bookmark with the Username matching the profile name from ~/.aws/credentials.
つまりS3 (Credentials from AWS Security Token Service) profileというファイルを別途ダウンロードして所定のフォルダに保存すると、STSを利用した接続設定ができるようになります。
まず上記ページのリンクからS3 (Credentials from AWS Security Token Service).cyberduckprofileというファイルをダウンロードします。
次に保存したファイルを下記フォルダに移動します。なおProfilesフォルダは通常存在しないので作成してください。
$ cd ~/Library/Group\ Containers/G69SCX94XU.duck/Library/Application\ Support/duck/ $ mkdir Profiles $ mv ~/Downloads/*.cyberduckprofile Profiles
ブックマーク追加方法
Cyberduckを起動し、ブックマーク一覧画面で "+" ボタンをクリックします。
プルダウンメニューからS3 (Credentials from AWS Security Token Service) を選択します。 ここに項目がでてこない場合はProfilesフォルダに正しくファイルが保存されていないのが原因なので確認してください。
Profile Name in ~/.aws/credentials にAWS認証情報ファイルに記載されている接続先のプロファイル名を入力します。
設定画面を閉じてから、ブックマークをダブルクリックするとS3に接続します。バケット一覧が表示されれば成功です!
まとめ
これまでCyberduckはSTSに対応していなかったため、アプリケーション自体にアクセスキーとシークレットキーを保存する必要がありました。 今回、AWS認証情報ファイルに対応したことでクレデンシャルの管理が一元化され、awscli等と共有できるできるようになりました。便利ですね。
またSTS(IAM Role)に対応したことで、複数アカウントに接続する場合も、各アカウントごとにアクセスキーを持つ必要がなくなりました。セキュリティ的にもこちらの方がうれしいです。
Cyberduckをご利用の方は、ぜひバージョン6.7.0以降にバージョンアップしましょう!
2018/08/21 17:20追記:MFA利用時の注意点について
接続に利用するIAM Roleの信頼関係設定でMFAが有効になっている場合は、Cyberduckの接続設定に下記変更を行ってください。
- 詳細設定 - ファイルの転送 で 「ブラウザの接続を使用」にする
デフォルトの 「Open multiple connections」だと、ファイルアップロードが別のセッションになり、セッションごとにMFA聞いてきて煩わしいためです。 「ブラウザの接続を使用」だとバケット一覧を開いたセッションでファイルアップロード/ダウンロードを行うため、再度MFAを聞かれることはありません。