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アプリケーションのみに許可され、ユーザーと共有する必要はありません。

PAMマシンレコード

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構成レコードで構成できるすべてのフィールドの詳細については、こちらのページをご参照ください。

AWS向けPAM構成

3. PAMユーザーレコードを設定

Keeperでは、PAMマシンレコードの認証情報を使用して、AWS環境のPAMユーザーレコードをローテーションします。PAMユーザーの認証情報は、要件で作成したKSMアプリケーションに共有されている共有フォルダに格納されている必要があります。

以下は、PAMユーザーレコードの必須フィールドとなります。

フィールド
説明

タイトル

Keeperレコードのタイトル (AWS Machine1 ec2-userなど)

ログイン

ローテーションするユーザーアカウントのユーザー名 (大文字と小文字の区別あり)。 ec2-userなど。

パスワード

ユーザーがパスワードを使用してログインする場合にのみ必要です。パスワードが空白のままの場合、ローテーションを実行するとパスワードが設定されます。

PEM秘密鍵

パスワードをローテーションする代わりにPEM鍵をローテーションする場合にのみ必要となります。

Linux PAMユーザーレコード

4. レコードでローテーションを構成

手順3のPAMユーザーレコードを選択し、編集して[パスワードローテーション設定]を開きます。

  • 適切なスケジュールとパスワードの複雑さを選択します。

  • [ローテーション設定]では、以前に設定したPAM構成を使用する必要があります。

  • [リソースクレデンシャル]フィールドで、手順1で設定されたPAMデータベース認証情報を選択する必要があります。

  • 保存すると、ローテーションボタンが有効になり、必要に応じて、または選択したスケジュールに基づいてローテーションできるようになります。

PAMユーザーのレコードに対するedit権限を持つユーザーならだれでも、そのレコードのローテーションを設定できます。

AWSインスタンスユーザーのパスワードローテーション設定

PAMユーザーのレコードに対するedit権限を持つユーザーならだれでも、そのレコードのローテーションを設定できます。

SSH鍵のローテーションに関する注意事項

対象のマシンまたはユーザーでPEM秘密鍵認証情報をローテーションする際、マシンのauthorized_keysファイルを新しい公開鍵に変更します。ローテーションの初回には、システムにアクセスできなくなることのないように、古い公開鍵がそのまま残されます。ファイルに追加された2番目の公開鍵には、以下のように以後のローテーションの識別子として機能する旨コメントが付加されます。

[ec2-user@host .ssh]$ cat authorized_keys
ssh-rsa AAAAB3NzaC1...11xZrfOxYXG6RV84mCZ3uldesEyV/ghLxAb7Fcz awsdemo
ssh-rsa AAAAB3NzaC...un+frl9Q== keeper-security-ec2user

デフォルトでは、.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ファイルは現在サポートされていません。

最終更新