SSM セッションの追加 KMS 暗号化設定の確認

Session Manager の既定の TLS 保護と、追加の KMS 暗号化要件を区別してください。

説明

Session Manager は、セッション通信に既定で TLS を使用します。kmsKeyId の省略は、セッションが平文で転送されることを意味しません。KMS 設定は、対応するセッションタイプで、この既定の保護に暗号化の層を追加します。

運用コマンドや応答に組織が管理するキーを追加で適用する必要がある場合は、実際のセッションで使用するドキュメントとキー権限を併せて設定する必要があります。

想定される影響

追加の KMS 暗号化を要求する運用基準を満たせない場合があります。キー権限が不適切だとセッションを開始できない可能性があり、追加の暗号化だけでは過剰な運用アクセス権限を制限できません。

対処方法

  • 必要に応じて、対応する Session ドキュメントの inputs.kmsKeyId に対称 KMS キーを指定してください。
  • セッションを開始するユーザーとマネージドノードの両方に必要なキー権限を付与し、対応する SSM Agent を使用してください。
  • 実際のセッション開始時にこのドキュメントが使用されることを確認し、新しい接続を検証してください。セッションログの保存先と保存時暗号化は別途設定してください。

例

Standard_Stream セッションの設定の抜粋です。ログの暗号化フラグだけではログの出力先は指定されないため、必要なログ保存設定は別途準備してください。

既定の TLS 保護

hcl
resource "aws_ssm_document" "example" {
  name          = "test_document"
  document_type = "Session"

  content = <<DOC
  {
    "schemaVersion": "1.0",
    "description": "Session preferences",
    "sessionType": "Standard_Stream",
    "inputs": {
      "s3EncryptionEnabled": true,
      "cloudWatchEncryptionEnabled": true,
      "cloudWatchStreamingEnabled": true,
      "runAsEnabled": false
    }
  }
DOC
}

追加の KMS キーを指定していませんが、既定の TLS 保護は維持されます。

追加の KMS 暗号化

hcl
resource "aws_ssm_document" "example" {
  name          = "test_document"
  document_type = "Session"

  content = <<DOC
  {
    "schemaVersion": "1.0",
    "description": "Session preferences",
    "sessionType": "Standard_Stream",
    "inputs": {
      "s3EncryptionEnabled": true,
      "cloudWatchEncryptionEnabled": true,
      "cloudWatchStreamingEnabled": true,
      "runAsEnabled": false,
      "kmsKeyId": "${var.kms_key_id}"
    }
  }
DOC
}

var.kms_key_id に実際のキーを指定し、このドキュメントを使用するセッションに必要な権限を準備してください。カスタムドキュメントを作成するだけでは、すべてのセッションに自動適用されません。

参考資料