目次
キーローテーションとは
IAMユーザーに発行されるアクセスキー(Access Key ID (公開側)+ Secret Access Key(秘密鍵))を定期的に新しいものに差し替える運用のことです(以下の1-3)。
1.新しいキーを作成
2.アプリ設定を切り替え
3.古いキーを削除
アクセスキーとは
IAMユーザーがAWS API・CLI・SDKを使う際に使用する認証情報です。
ローテーションが必要な理由
アクセスキーは認証情報であり時間とともに漏洩リスクが高まります。
- コードやファイルに埋め込まれたキーが流出するリスク
- 退職者・異動者のキーが残存するリスク
- 長期間同じキーを使い続けると、漏洩に気づきにくい
AWSのローテーションの推奨頻度
AWSの推奨は、90日以内に1回です。
以下は、アクティブなキーがある例です。

以下は、キーが設定されていない例です。棒線(-)が表示されます。

アクセスキーの代わりにIAMロールを使う
キーローテーションが必要になるのはIAMユーザーのアクセスキーを使っている場合です。
EC2・Lambda・ECSなどのAWSサービスからAPIを呼ぶ場合は、IAMロールを使えばアクセスキー自体が不要になり、ローテーションの手間もなくなります。
新規構築ではIAMロールの利用が強く推奨されています。
現在設定されているアクセスキーを確認する
1.検索入力欄で「IAM」と入力し、表示された「IAM」をクリックします。
2.左の画面で「ユーザー」をクリックします。
3.ユーザの一覧で確認するユーザーのリンクをクリックします。

4.「セキュリティ認証情報」をクリックします。

5.下にスクロールしたところにアクセスキーがあります。
アクセスキーは最大2つまでです。
すでにキーが2つある場合はどちらかを削除しないと新しいキーは作成できません。
削除は、「アクション」をクリックして「削除」をクリックします。

IAMユーザーのキーを新規作成する
1.検索入力欄で「IAM」と入力し、表示された「IAM」をクリックします。
2.左の画面で「ユーザー」をクリックし、ユーザの一覧で対象のユーザのリンクをクリックします。
3.「セキュリティ認証情報」をクリックします。

4.アクセスキーの箇所で「アクセスキーを作成」をクリックします。

5.使用しているキーの種類をチェックします。ここではCLIにチェックを入れました。

6.説明タグ値に任意の値を入力し「アクセスキーを作成」をクリックします。

7「.csvファイルをダウンロード」ボタンをクリックしてファイルを保存しておきます。
ファイルの中にアクセスキーとシークレットキーが記載されています。
完了ボタンを押して終了します。

EC2でキーを設定してS3にアクセスする
上記で作成したキーをEC2に設定してS3にアクセスします。
ユーザにS3アクセスの権限は設定済みです。
| aws configure listで現在のキーの設定を確認できます。 |
1.コンソールでaws configureで設定を行います。
[ec2-user@ip-10-0-10-4 ~]$ aws configure
AWS Access Key ID [None]: アクセスキー
AWS Secret Access Key [None]: シークレットキー
Default region name [None]: ap-northeast-1
Default output format [None]:
2行目にダウンロードしたファイルからアクセスキーをコピペします。
3行目にダウンロードしたファイルからシークレットキーをコピペします。
4行目は、デフォルトにするリージョンを入力します。
5行目は、何も入力せずエンターキーを押します。
2.aws s3 lsでバケットを参照できました。
[ec2-user@ip-10-0-10-4 ~]$ aws s3 ls
2022-07-12 15:35:34 test-s3-data-2022
[ec2-user@ip-10-0-10-4 ~]$
既存のキーを無効化した場合
1.既存のキーのアクションで「無効化」をクリックします。

※無効化にしても再度有効化することができます。
2.ユーザ一覧にあるアクティブなキーの経過期間がリセットされます。

使用しなくなったキーの削除はアプリ側の設定完了後に行います。
関連の記事
