【新機能】AWS Identity and Access Managementのアクセスキーが最後に使用された日時を識別する
こんにちは、せーのです。今日は特に管理者側に便利なIAMの新機能をご紹介します。
アクセスキーのローテート、できてますか?
セキュリティを維持するために必要なこととして「鍵が古くなったら交換する」「使っていないユーザー、鍵は削除する」という2大原則が挙げられます。こちらの記事でも警鐘を鳴らしているように特にアクセスキーというのは権限によっては何でも出来てしまいますので、その管理は慎重に行われるべきです。といってもメンバーそれぞれに与えた鍵に対して「ちゃんと保管しているか」「定期的に交換しているか」等を管理するのは大変ですので、手元にて一括管理するのが望ましいです。
最後に使った日時を表示
そこで今回の新機能となります。IAMユーザーの画面を開いてみてください。表示が普段とは少し変わっています。
アクセスキーの下に「作成日時」「最後に使用した日時」「最後に使用したリージョン」「最後に使用したサービス」が表示されるようになりました。 [N/A]というのは記録がない、つまり一度も使用していないということを指します。つまりこの例で言えば上のアクセスキーは古すぎるので交換が必要、下のアクセスキーはそもそも使っていないので削除、というようなローテートの指針になるわけです。アクセスキーの下にある「アクセスキーの管理」ボタンを押すと
このように鍵の削除や無効化を操作できる画面に移ります。いきなり削除、というのも乱暴なので一旦無効化して鍵を持っている担当の方に使うかどうか事情を聞く、というのが実際の現場ではスマートですね。
さて、こうやって1ユーザーずつ確認していけばいいわけですが、ちょっとめんどくさいですね。一覧で一気に見られると便利です。そういう時は「認証情報レポート」を使いましょう。
認証情報レポートから「レポートをダウンロード」を押すと、アカウント毎の全IAMユーザーの認証に関する使用状況がCSVファイルにてダウンロードされます。中身を見てみると
こんな感じになります。アクセスキーが複数ある場合は横に表示されるんですね。こちらのレポートを定期的にダウンロードして鍵の使用状況、パスワードの交換状況を確認しておきましょう。
ルートユーザーの認証使用状況
IAMユーザーはこの方法で管理がグッと楽になったかと思います。最後にルートユーザーの確認方法をご紹介します。
ルートユーザーでログインしたら右上のアカウント名が書かれているところに「認証情報」というリンクがあるのでこちらをクリックします。
一発警告が入り
認証情報の確認画面に進みます。アクセスキーの確認はこのページから「アクセスキー」というトグルを選択すると表示されます。
ルートユーザーはなるべく使わない
ここに進むまで色々と警告が出ているのでおわかりかと思いますが、ルートユーザーを使ってAWSリソースを操作することはお勧めされておりません。特にルートユーザーのアクセスキーは万が一漏れると大変な事になりますので「そもそも作らない」という選択肢がベストプラクティスとなります。現在ルートユーザーしか持っていない方がいらっしゃいましたらルートユーザーは神棚に大事に置いておいて、Administrator権限を持ったIAMユーザーをかわりに使いましょう。
まとめ
いかがでしょうか。普段継続的に使用していると中々アクセスキーやパスワードのローテートが億劫になってしまいがちですが、今どきはパスワードを記憶しておいて毎回手で入力する、という方は少なくなり、ランダムな文字列をパスワードに設定してパスワード管理ソフトに記録させておく、という方が増えているかと思います。この方法ですとそもそもパスワードを覚える必要がないので、ローテートしてもパスワードを「覚え直す」という手間も省けます。最近のパスワード管理ソフトはiOSやAndroid、Windows、macと複数のプラットフォームに対応しているので使っていない方は是非この機会に導入して定期的にパスワード、アクセスキーを変更するように心がけましょう。
参考サイト
- http://blogs.aws.amazon.com/security/post/Tx1GZCHQC7LR3UT/New-in-IAM-Quickly-Identify-When-an-Access-Key-Was-Last-Used
- http://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html
- http://blogs.aws.amazon.com/security/post/Tx25GQCL5AP1FV3/New-in-the-IAM-console-at-a-glance-view-of-last-AWS-sign-in