KMS를 사용한 SSM 세션 데이터 암호화

4707 단어


Session Manager를 사용하여 EC2 인스턴스에 연결하는 것은 이미 몇 년 동안 기본입니다. 그러나 대부분의 사용자는 AWS가 기본적으로 이미 제공하는 defaultTLS 1.2 암호화를 사용하고 있습니다. 대부분의 사용 사례에서 이것은 괜찮지만 때로는 고유한 KMS 키로 세션을 암호화해야 합니다. 키를 사용하여 세션 데이터를 암호화하면 세션에서 암호 재설정과 같은 기밀 데이터 상호 작용을 처리할 수 있으며 Systems Manager Session Manager를 사용할 때 보안 상태가 더욱 향상됩니다. AWS KMS에서 생성된 키를 사용하여 세션 데이터를 암호화하는 옵션을 사용하려면 버전 2.3.539.0 이상 AWS Systems Manager SSM 에이전트가 관리형 인스턴스에 설치되어 있어야 합니다.

또한 세션 데이터를 S3 또는 CloudWatch에 기록하고 자신의 KMS 키를 사용하여 대상에 기록되는 세션 데이터를 암호화하는 것이 좋습니다. 다음 게시물에서는 고유한 KMS 키를 사용하여 세션 데이터를 보호하기 위해 SSM 기본 설정을 자동으로 구성하는 방법을 설명합니다.



설정


  • StackSet 또는 Stack을 사용하여 이template를 사용하여 필요한 KMS 키를 설정합니다. 이 템플릿은 권한이 있는 SSM 및 CloudWatch에 필요한 KMS 키를 생성합니다.
  • boto3로 LambdaLayer 생성 또는 prebuild layer. 사용
  • StackSet 또는 Stack을 사용하여 다음template을 배포합니다. 제공한 템플릿이 세션 관리자를 구성합니다.

  • 성공적인 배포 후:


  • 선택적으로 SCP를 사용하여 CloudWatch LogGroup을 보호합니다.
    Session Manager의 CloudWatch LogGroup에는 민감한 데이터가 포함될 것이므로 감사 팀의 몇 사람만 읽을 수 있도록 SCP를 사용하여 LogGroup을 보호하는 것이 좋습니다.

  • {
      "Version": "2012-10-17",
      "Statement": [
    {
          "Sid": "CloudWatchLogsDeny",
          "Effect": "Deny",
          "Action": [
            "logs:DescribeLogStreams"
          ],
          "Resource": [
            "arn:aws:logs:*:*:log-group:/aws/ssm/SessionManagerLogGroup:*"
          ],
          "Condition": {
            "ArnNotLike": {
              "aws:PrincipalArn": [
                "arn:aws:iam::*:role/AuditRole"
              ]
            }
          }
        }
      ]
    }
    


    용법



    이제 브라우저 또는 CLI를 사용하여 세션 관리자를 사용하여 인스턴스에 연결할 수 있으며 세션 중에 모든 데이터는 자체 KMS 키를 사용하여 암호화됩니다.

    ℹ️ 명령이 MFA를 요청하지 않는 🚨 issue이 있기 때문에 MFA가 필요한 aws ssm start-session 플래그와 함께 --profile를 사용할 수 없습니다.

    해결 방법: awsume을 사용하면 이 문제가 해결됩니다.

    좋은 웹페이지 즐겨찾기