EC2仮想マシンユーザー
Keeperを使用したAWS EC2仮想マシンアカウントのローテーション

本ページでは、Keeperローテーションを使用してAWS環境内でAWS EC2仮想マシン (VM) アカウントをローテーションする方法について取り扱います。EC2 VMはAWSが管理するリソースで、EC2 VM管理者の認証情報はPAMマシンレコードにリンクされ、EC2 VMユーザーの識別はPAMユーザーレコードタイプで定義されます。
EC2 VMアカウントの場合、通常のオペレーティングシステムコマンドを使用してパスワードを変更します。Keeperは対象のマシンに接続し、コマンドラインコマンドを送信してパスワードを変更します。
要件
以下がすでに実行されていることを前提としています。
ロールに対してKeeperシークレットマネージャー有効になっていること。
Keeperローテーションがご利用のロールに対して有効になっていること。
Keeperシークレットマネージャーアプリケーションが作成済みであること。
Keeperローテーションゲートウェイがすでにインストールされて動作しており、SSHかWinRMを介して対象のAWS仮装マシンと通信できること。
AWS環境がKeeperのドキュメントに従って設定されていること。
1. PAMマシンレコードを設定
ゲートウェイマシンまたはネットワーク上の他のマシンのローカルユーザーアカウントをローテーションできます。PAMマシンレコードは、それぞれのマシンに対して作成する必要があります。このPAMマシンレコードには、マシン上のユーザーのパスワードを変更する権限を持つ管理用認証情報がリンクされている必要があります。
それぞれのマシンに対してPAMマシンレコードを作成した後、ローテーションされるローカルユーザーアカウントごとにPAMユーザーレコードを作成する必要があります。
指定された管理者認証情報を使用して、AWS環境のAWS仮想マシンユーザーのパスワードまたはSSH鍵をローテーションします。これらの管理者認証情報には、ユーザーアカウントの認証情報を正常に変更するために十分な権限が必要です。
PAMマシンレコードのローテーションを実行する際に、そのマシンがKeeperゲートウェイを実行している場合、Keeperはkeeper-gw
ユーザーを使用してアカウントのパスワードまたはSSHキーをローテーションしようとします。keeper-gw
にsudo権限がある場合、ローカルのゲートウェイマシン上でローテーションを実行できます。
以下は、PAMマシンレコードの必須フィールドとなります。
タイトル
レコードの名前 (AWS Linux 1
など)
ホスト名またはIPアドレス
ゲートウェイがアクセスするマシンのホスト名またはIP
ポート
通常、WinRMでは5985または5986、SSHでは22
ログイン管理者認証情報
リンクされたPAMユーザーレコードには、管理者アカウントのユーザー名とパスワード (またはSSH鍵) が含まれています。
オペレーティングシステム
VMのオペレーティングシステム(Windows
またはLinux
)
SSL検証
WinRMの場合、選択するとSSLモードポート5986が使用されます。SSHでは無視されます。
このPAMマシンレコードとリンクされた管理者認証情報は、要件で作成したKSMアプリケーションに共有されている共有フォルダ内に配置する必要があります。この特権アカウントへのアクセスはKSMアプリケーションのみに許可され、ユーザーと共有する必要はありません。

2. PAM構成を設定
注: 環境に対して既にPAM構成を設定済みの場合は、この手順を省略できます。
先に以下を完了しておきます。
Keeperシークレットマネージャーアプリケーションが作成済みであること
Keeper Rotationゲートウェイがすでにインストールされて動作しており、作成したKeeperシークレットマネージャーアプリケーションでプロビジョニングされていること。
対象のマシンごとにPAMマシンレコードが作成されていること
新しいPAM設定を作成する場合は、Keeperボルトにログインし、左側のメニューから[シークレットマネージャー]、[PAM構成]タブの順に選択して、[新規構成]をクリックします。 以下は、PAM構成の必須フィールドとなります。
タイトル
構成名 (AWS VM Configuration
など)
環境
AWS
を選択
ゲートウェイ
Keeperシークレットマネージャーアプリケーションで構成され、要件のAWS仮想マシンにネットワークでアクセスできるゲートウェイを選択します
アプリケーションフォルダ
PAM構成が保存される共有フォルダを選択してください。PAM構成はマシンではなく、管理者アカウントに関連付けられた共有フォルダに配置することをお勧めします。
AWS ID
このAWSのインスタンス固有のID。参考用のため任意のIDを指定できますが、短くすることをお勧めします。
例:AWS-1
アクセスキーID
EC2ロールポリシー (デフォルト) を使用している場合は、このフィールドをUSE_INSTANCE_ROLE
に設定します。使用していない場合は、特定のアクセスキーIDを使用します。
シークレットアクセスキー
EC2ロールポリシー (デフォルト) を使用している場合は、このフィールドをUSE_INSTANCE_ROLE
に設定します。使用していない場合は、特定のシークレットアクセスキーを使用します。
PAM構成レコードで構成できるすべてのフィールドの詳細については、こちらのページをご参照ください。

3. PAMユーザーレコードを設定
Keeperでは、PAMマシンレコードの認証情報を使用して、AWS環境のPAMユーザーレコードをローテーションします。PAMユーザーの認証情報は、要件で作成したKSMアプリケーションに共有されている共有フォルダに格納されている必要があります。
以下は、PAMユーザーレコードの必須フィールドとなります。
タイトル
Keeperレコードのタイトル (AWS Machine1 ec2-user
など)
ログイン
ローテーションするユーザーアカウントのユーザー名 (大文字と小文字の区別あり)。 ec2-user
など。
パスワード
ユーザーがパスワードを使用してログインする場合にのみ必要です。パスワードが空白のままの場合、ローテーションを実行するとパスワードが設定されます。
PEM秘密鍵
パスワードをローテーションする代わりにPEM鍵をローテーションする場合にのみ必要となります。

4. レコードでローテーションを構成
手順3のPAMユーザーレコードを選択し、編集して[パスワードローテーション設定]を開きます。
適切なスケジュールとパスワードの複雑さを選択します。
[ローテーション設定]では、以前に設定したPAM構成を使用する必要があります。
[リソースクレデンシャル]フィールドで、手順1で設定されたPAMデータベース認証情報を選択する必要があります。
保存すると、ローテーションボタンが有効になり、必要に応じて、または選択したスケジュールに基づいてローテーションできるようになります。
PAMユーザーのレコードに対するedit
権限を持つユーザーならだれでも、そのレコードのローテーションを設定できます。

PAMユーザーのレコードに対するedit
権限を持つユーザーならだれでも、そのレコードのローテーションを設定できます。
SSH鍵のローテーションに関する注意事項
対象のマシンまたはユーザーでPEM秘密鍵認証情報をローテーションする際、マシンのauthorized_keysファイルを新しい公開鍵に変更します。ローテーションの初回には、システムにアクセスできなくなることのないように、古い公開鍵がそのまま残されます。ファイルに追加された2番目の公開鍵には、以下のように以後のローテーションの識別子として機能する旨コメントが付加されます。
デフォルトでは、.ssh/authorized_keys
ファイルから他のキーは削除されません。これは、一部プロバイダが仮想マシンを制御するために自分のキーを配置するためです (Google Cloud Providerなど)。
最初のローテーションが成功すると、オプションでauthorized_keys
ファイル内の古い公開鍵エントリを削除できます。それ以降のローテーションでは、「keeper-security-xxx」というコメントが含まれている行が更新されます。
ローテーションは、以前の.ssh/authorized_keys
のバックアップも.ssh
ディレクトリ内に作成します。
プライベートキーのローテーションでは、新しいプライベートキーは現在のプライベートキーと同じアルゴリズムおよびキーサイズ (ビット) になります。たとえば、現在のプライベートキーがecdsa-sha2-nistp256
の場合、新しいプライベートキーもecdsa-sha2-nistp256
になります。これを上書きするには、カスタムテキストフィールド (ラベル: Private Key Type) を追加し、以下の対応しているアルゴリズムのいずれかに値を設定します。
ssh-rsa
- 4096ビットecdsa-sha2-nistp256
- ECDSA、256ビットecdsa-sha2-nistp384
- ECDSA、384ビットecdsa-sha2-nistp521
- ECDSA、521ビットssh-ed25519
このカスタムフィールドは、現在のプライベートキーのアルゴリズムが検出できない場合にも使用できます。
プライベートキーのローテーションを防ぐには、PAMユーザーのレコードにPrivate Key Rotate
というラベルのカスタムテキストフィールドを追加します。フィールドの値がTRUEの場合、またはフィールドが存在しない場合は、プライベートキーが存在すればローテーションされます。値がFALSEの場合、プライベートキーはローテーションされません。
Linuxユーザーのローテーションでは、パスワードで暗号化されたPEMファイルは現在サポートされていません。
最終更新