RDP 接続を記録する
ジャストインタイムノードアクセスには、Windows Server ノードへの RDP 接続を記録する機能があります。RDP 接続を記録するには、S3 バケットおよび AWS Key Management Service (AWS KMS) カスタマーマネージドキーが必要です。AWS KMS key は、記録対象のデータが生成されて Systems Manager リソースに保存される際に一時的に暗号化するために使用されます。カスタマーマネージドキーは、暗号化と復号を主な用途とする対称キーでなければなりません。組織で 1 つのマルチリージョンキーを使用することもできれば、ジャストインタイムノードアクセスを有効にしたリージョンごとにカスタマーマネージドキーを作成しなければならないこともあります。
記録を保存する S3 バケットで KMS 暗号化を有効にしている場合は、バケット暗号化に使用されるカスタマーマネージドキーへのアクセスを ssm-guiconnect
サービスプリンシパルに提供する必要があります。このカスタマーマネージドキーは、記録設定で指定したものとは異なる場合があります。これには、接続を確立するために必要な kms:CreateGrant
アクセス許可を含める必要があります。
RDP 記録用の S3 バケット暗号化の設定
接続記録は、RDP 記録を有効にするときに指定した S3 バケットに保存されます。
S3 バケット (SSE-KMS) のデフォルトの暗号化メカニズムとして KMS キーを使用する場合は、ssm-guiconnect
サービスプリンシパルにキーに対する kms:GenerateDataKey
アクションへのアクセスを許可する必要があります。S3 バケットで SSE-KMS 暗号化を使用する場合は、カスタマーマネージドキーを使用することをお勧めします。お勧めする理由は、カスタマーマネージドキーの関連付けられたキーポリシーを更新できるためです。AWS マネージドキー のキーポリシーを更新することはできません。
重要
ジャストインタイムノードアクセスの Session Manager 暗号化と RDP 記録に使用する AWS KMS キーにタグキー SystemsManagerJustInTimeNodeAccessManaged
とタグ値 true
でタグ付けする必要があります。
KMS キーのタグ付けの詳細については、「AWS Key Management Service デベロッパーガイド」の「Tags in AWS KMS」を参照してください。
次のカスタマーマネージドキーポリシーを使用して、S3 ストレージの KMS キーへの ssm-guiconnect
サービスアクセスを許可します。カスタマーマネージドキーの更新については、「AWS Key Management Service デベロッパーガイド」の「キーポリシーの変更」を参照してください。
各 example resource placeholder
をユーザー自身の情報に置き換えます。
-
account-id
は、接続を開始する AWS アカウントの ID を表します。 -
region
は、S3 バケットが位置する AWS リージョンを表します。(バケットが複数のリージョンからの録画を受信する場合、*
を使用できます。例:s3.*.amazonaws.com
。)
注記
アカウントが AWS Organizations の組織に属している場合、aws:SourceAccount
の代わりにポリシーの aws:SourceOrgID
を使用できます。
{ "Sid": "Allow the GUI Connect service principal to access S3", "Effect": "Allow", "Principal": { "Service": "ssm-guiconnect.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
" }, "StringLike": { "kms:ViaService": "s3.region
.amazonaws.com" } } }
RDP 接続を記録するように IAM アクセス許可を設定する
ジャストインタイムノードアクセスに IAM アクセス許可が必要になるほか、実行する必要があるタスクに基づいて、使用するユーザーやロールに対して以下のアクセス許可を付与する必要があります。
接続を記録するように設定するためのアクセス許可
RDP 接続を記録するように設定するには、以下のアクセス許可が必要です。
-
ssm-guiconnect:UpdateConnectionRecordingPreferences
-
ssm-guiconnect:GetConnectionRecordingPreferences
-
ssm-guiconnect:DeleteConnectionRecordingPreferences
-
kms:CreateGrant
接続を開始するためのアクセス許可
ジャストインタイムノードアクセスとの RDP 接続を確立するには、以下のアクセス許可が必要です。
-
ssm-guiconnect:CancelConnection
-
ssm-guiconnect:GetConnection
-
ssm-guiconnect:StartConnection
-
kms:CreateGrant
[開始する前に]
接続の記録を保存するには、まず S3 バケットを作成し、以下のバケットポリシーを追加する必要があります。各リソースプレースホルダーの例
をユーザー自身の情報に置き換えます。
(バケットポリシーの追加方法の詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 コンソールを使用したバケットポリシーの追加」を参照してください。)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConnectionRecording", "Effect": "Allow", "Principal": { "Service": [ "ssm-guiconnect.amazonaws.com" ] }, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::
bucket name
", "arn:aws:s3:::bucket name
/*" ], "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012
" } } } ] }
RDP 接続記録の有効化と設定
以下の手順では、RDP 接続の記録を有効にして設定する方法について説明します。
RDP 接続記録を有効化および設定するには
AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/
) を開きます。 -
ナビゲーションペインの [設定] を選択します。
-
[ジャストインタイムノードアクセス] タブを選択します。
-
[RDP 記録] セクションで、[RDP 記録を有効にする] を選択します。
-
セッション記録のアップロード先となる S3 バケットを選択します。
-
記録対象のデータが生成されて Systems Manager リソースに保存される際に、データの一時的な暗号化に使用するカスタマーマネージドキーを選択します。(これは、バケットの暗号化に使用するものとは異なるカスタマーマネージドキーにすることができます。)
-
[保存] を選択します。
RDP 接続の記録ステータス値
RPD 接続記録の有効なステータス値は次のとおりです。
-
Recording
- 接続は記録中です。 -
Processing
- 接続が終了した後、動画が処理されています。 -
Finished
- 正常な終了状態: 接続録画の動画が正常に処理され、指定されたバケットにアップロードされました。 -
Failed
- 失敗した終了状態。接続は正常に記録されませんでした。 -
ProcessingError
- 動画処理中に 1 つ以上の中間障害/エラーが発生しました。考えられる原因には、記録の保存用に指定された S3 バケットの設定ミスによるサービス依存関係の問題やアクセス許可の不足などがあります。記録がこの状態にある場合、サービスは処理を試行し続けます。
注記
ProcessingError
は、接続の確立後に S3 バケットにオブジェクトをアップロードするアクセス許可が ssm-guiconnect
サービスプリンシパルに付与されていない可能性があります。もう 1 つの考えられる原因は、S3 バケット暗号化に使用される KMS キーに対する KMS アクセス許可がないことです。