ITセキュリティにとってのベストプラクティスは多くの場合実装するよりも定義する方が容易かったりします。私達はAWSセキュリティセンターにおいて、できるかぎり容易に実装できるサービスやセキュリティ機能に裏付けられたベストプラクティスを定義することに全力を尽くしています。
このような中で、新しくでた有用なAWS Identity and Access Management (IAM)の機能について、皆様が十分に認識しているか確認できればと思います。 私達は先月その機能をAWS SA Blog(AWS Security Blog)の詳細な記事と共に立ち上げました。 もしこの最初の記事を見落としていた時のために、念のため、この記事でフォローアップしていきます。
恐らくご存知のように、AWS APIをコールするときに、あなたはアクセスキーを使用することが必要となります。 AWS Command Line Interface (CLI)やAWS Tools for Windows PowerShellを通じてAWSを操作する時もアクセスキーは必要となります。 あなたは各AWSアカウントの各々のIAMユーザーにおいて2つのアクセスキーを持つことができます。 それぞれのキーはアクティブか非アクティブの状態にすることができます。 (もし非アクティブのキーを使ってAWS APIを呼び出すと、それは失敗します)
適切なセキュリティに関する状態を維持するために、私達は定期的にキーのローテーションを行うことを強く推奨してます。 これはExposure(露出)に関するシンプルな話しです。:古ければ古いほど、キーが誤った取扱いをされている可能性が高くなります。 私達はアカウントキーの使用についてアドバイスしていますが、それらのローテーションをお勧めすることもまたあてはまります。
アプリケーションにより詳細はまちまちではありますが、アカウントやユーザーのキーのセットをローテーションさせる一般的なステップは通常以下のようになります。
- もしあるようであれば、非アクティブなキーを削除する
- 新しいキーを生成する
- 新しいキーを利用するように全てのコードや設定ファイルを更新する
- 以前のキーをアプリケーションやスクリプトが利用していないか確認をする
- 以前のキーを非アクティブ化する
Security Blogの投稿に書かれていた機能は、特定のアクセスキーがいつ最後に使われたか知らせることにより、ステップ4においてあなたを助けるように作られています。 これにより、あなたはその鍵がもはや使われていないことに自信を持って以前の鍵を非アクティブ化する(ステップ5)ことができます。 これは、アクセスは持っているのにもはやそれを利用していないIAMユーザーを特定することにも使えます。
あなたはIAM API (GetAccessKeyLastUsed
)か、IAMコンソールからこの機能を使用することができます。
上の画面でわかりますように、私も自身のアドバイスに従い自分のキーをローテーションしないといけないようです。 また、キーのうち一つを全く使用していませんでした。 APIやコンソールにより提供される情報には、最後に使用したサービスやリージョンも含まれています;これは古いキーを未だ使っているコードがどこにあるか調べることに役立ちます。
この機能についての詳細に関しては、AWS SA Blogの「IAM新機能:アクセスキーが最後に使われたのはいつかを簡単に知ることができるようになりました」をお読みください。
- Jeff(日本語訳は高田智己が担当しました)