[アップデート] AWS Transfer Family でサーバーの ID プロバイダータイプが変更できるようになりました
いわさです。
AWS で SFTP や FTPS などファイル転送プロトコルを使う必要があって、それでいてインフラ管理や耐障害性などをマネージドサービスに任せたい場合、AWS Transfer Family を採用することが多いと思います。
この AWS Transfer Fanily ですが、サーバー作成時にそのサーバーに接続するユーザーをどのように管理するか ID プロバイダータイプとして選択します。
利用の時点ではこの管理方法でと決まっていることがほとんどなのですが、運用していくなかで別のユーザー管理方法に変更したくなることがあります。
これまでは AWS Transfer Family は ID プロバイダータイプの変更をサポートしていませんでした。そのため、サーバーを再作成する必要がありました。
先日のアップデートで、なんとこの ID プロバイダータイプを変更できるようになりました。
アップデート前はサーバーを再作成することでサーバー ID が変わり、カスタムホスト名を使っていない場合に接続先が変わったり、CloudWatch でメトリクスやアラームの設定している場合はやり直す必要がありました。また、Transfer Family のワークフロー機能などを使っているとそのあたりも設定し直しです。
今回のアップデートで同じサーバーを使い続けながら ID プロバイダータイプだけ変更できるようになりました。
ID プロバイダータイプを変更してみる
AWS Transfer Family の ID プロバイダータイプは新しくサーバーを作成する時に選択する次の箇所のことです。
例えば Transfer Family 上で SFTP ユーザーなどを管理したい場合は「サービスマネージド」を選択してからユーザーごとの SSH キーをアップロードします。
あるいは既存の Active Directory ユーザーを使いたい場合などは「AWS Directory Service」を選択します。
他にも任意の ID プロバイダーと連携するためのカスタム処理を実装するために「カスタム ID プロバイダー」という選択もあります。

作成後はサーバー詳細からどの ID プロバイダーを選択するか確認が出来まして、ここに「編集」ボタンがあります。
この編集ボタン自体は以前から存在していました。

アップデート前はこの編集を ID プロバイダータイプの編集を行おうとしても次のようにプロバイダータイプの変更などは出来ませんでした。

サーバーの詳細を編集する - AWS Transfer Family より
アップデート後は次のように変更が出来るようになっています。素晴らしい。

サービスマネージドからカスタム ID プロバイダー(Lambda 関数)に変更してみました。
特に設定変更後のサービスダウンタイムなどもなく、すぐに設定変更が完了しました。

ユーザーの移行は自分で行う必要がある
注意点として、今回のアップデートでは ID プロバイダーの変更はできるのですが、既存のユーザーをそのまま新しいプロバイダーでも使い続けることが出来るというものではないという点です。
サービスマネージドと Active Directory、カスタム ID プロバイダーでユーザー管理方法や概念が全く異なりますので、ID プロバイダーの変更に伴って変更先で新しくユーザーを管理をやり直す必要があります。
ただし、ID プロバイダー変更時の問題に対処するために既存ユーザーの設定を残してくれるのでロールバックが一応できます。
例えば、先程はサービスマネージドでユーザーが存在する状態でカスタム ID プロバイダーに変更したので、次のようにサービスマネージドなユーザーが表示されなくなりました。
本来であれば以下にユーザー一覧が表示されています。

ここで仮に変更先の ID プロバイダーがうまく動かなくてサービスマネージドに一度戻したいとなったとしましょう。
その場合おは再び ID プロバイダーがサービスマネージドに変更し直すことで、次のようにユーザーが復元されます。

公式ドキュメントによると以下のシナリオがサポートされていると記載されていました。
- サービスマネージド - カスタム ID プロバイダー間
- AWS Directory Service - カスタム ID プロバイダー間
サービスマネージドから AWS Directory Service に変更した場合は対象外なのかな?と思って試してみたのですがこちらも大丈夫みたいでした。
サービスマネージドから AWS Directory Service に変更してアクセスを追加しています。

そしてそこからまたサービスマネージドに戻しましたが、SFTP ユーザーは残っていましたね。ここからまた Active Directory に戻しましたがアクセス設定は残っていました。

さいごに
本日は AWS Transfer Family でサーバーの ID プロバイダータイプが変更できるようになったので使ってみました。
私も過去にたまーにこれをやりたいことがあったのでちょっと嬉しいアップデートです。
なお、AWS Transfer Family は ID プロバイダーだけでなくそれぞれのユーザーの権限など細かい設定が必要で、ユーザー移行の部分が結構大変だと思います。
変更前に開発環境などで切り替えのテストをしっかり行いたいですね。






