네트워크/클라우드 컴퓨팅

system manager - fleet manager

코춘대길 2023. 3. 6. 23:00
728x90

fleet manager?

session manager에서 더 강화된 버전이라고 생각하면 편합니다. session manager와 다르게 GUI 환경에 대한 엑세스가 가능하고 더 통합적인 관리가 가능합니다.

실습

fre-requisites

EC2를 fleet manager 관리 IAM 롤에 연결

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Sid":"EC2",
         "Effect":"Allow",
         "Action":[
            "ec2:CreateTags",
            "ec2:DeleteTags",
            "ec2:DescribeInstances",
            "ec2:DescribeTags"
         ],
         "Resource":"*"
      },
      {
         "Sid":"General",
         "Effect":"Allow",
         "Action":[
            "ssm:AddTagsToResource",
            "ssm:DescribeInstanceAssociationsStatus",
            "ssm:DescribeInstancePatches",
            "ssm:DescribeInstancePatchStates",
            "ssm:DescribeInstanceProperties",
            "ssm:GetCommandInvocation",
            "ssm:GetServiceSetting",
            "ssm:GetInventorySchema",
            "ssm:ListComplianceItems",
            "ssm:ListInventoryEntries",
            "ssm:ListTagsForResource",
            "ssm:ListCommandInvocations",
            "ssm:ListAssociations",
            "ssm:RemoveTagsFromResource"
         ],
         "Resource":"*"
      },
      {
         "Sid":"SendCommand",
         "Effect":"Allow",
         "Action":[
            "ssm:GetDocument",
            "ssm:SendCommand",
            "ssm:StartSession"
         ],
         "Resource":[
            "arn:aws:ec2:*:account-id:instance/*",
            "arn:aws:ssm:*:account-id:managed-instance/*",
            "arn:aws:ssm:*:account-id:document/SSM-SessionManagerRunShell",
            "arn:aws:ssm:*:*:document/AWS-PasswordReset",
            "arn:aws:ssm:*:*:document/AWSFleetManager-AddUsersToGroups",
            "arn:aws:ssm:*:*:document/AWSFleetManager-AWSFleetManager-CopyFileSystemItem",
            "arn:aws:ssm:*:*:document/AWSFleetManager-CreateDirectory",
            "arn:aws:ssm:*:*:document/AWSFleetManager-CreateGroup",
            "arn:aws:ssm:*:*:document/AWSFleetManager-CreateUser",
            "arn:aws:ssm:*:*:document/AWSFleetManager-CreateUserInteractive",
            "arn:aws:ssm:*:*:document/AWSFleetManager-CreateWindowsRegistryKey",
            "arn:aws:ssm:*:*:document/AWSFleetManager-DeleteGroup",
            "arn:aws:ssm:*:*:document/AWSFleetManager-DeleteUser",
            "arn:aws:ssm:*:*:document/AWSFleetManager-DeleteWindowsRegistryKey",
            "arn:aws:ssm:*:*:document/AWSFleetManager-DeleteWindowsRegistryValue",
            "arn:aws:ssm:*:*:document/AWSFleetManager-GetFileContent",
            "arn:aws:ssm:*:*:document/AWSFleetManager-GetFileSystemContent",
            "arn:aws:ssm:*:*:document/AWSFleetManager-GetGroups",
            "arn:aws:ssm:*:*:document/AWSFleetManager-GetPerformanceCounters",
            "arn:aws:ssm:*:*:document/AWSFleetManager-GetProcessDetails",
            "arn:aws:ssm:*:*:document/AWSFleetManager-GetUsers",
            "arn:aws:ssm:*:*:document/AWSFleetManager-GetWindowsEvents",
            "arn:aws:ssm:*:*:document/AWSFleetManager-GetWindowsRegistryContent",
            "arn:aws:ssm:*:*:document/AWSFleetManager-MoveFileSystemItem",
            "arn:aws:ssm:*:*:document/AWSFleetManager-RemoveUsersFromGroups",
            "arn:aws:ssm:*:*:document/AWSFleetManager-RenameFileSystemItem",
            "arn:aws:ssm:*:*:document/AWSFleetManager-SetWindowsRegistryValue",
            "arn:aws:ssm:*:*:document/AWSFleetManager-StartProcess",
            "arn:aws:ssm:*:*:document/AWSFleetManager-TerminateProcess"
         ],
         "Condition":{
            "BoolIfExists":{
               "ssm:SessionDocumentAccessCheck":"true"
            }
         }
      },
      {
         "Sid":"TerminateSession",
         "Effect":"Allow",
         "Action":[
            "ssm:TerminateSession"
         ],
         "Resource":"*",
         "Condition":{
            "StringLike":{
               "ssm:resourceTag/aws:ssmmessages:session-id":[
                  "${aws:userid}"
               ]
            }
         }
      },
      {
         "Sid":"KMS",
         "Effect":"Allow",
         "Action":[
            "kms:GenerateDataKey"
         ],
         "Resource":[
            "arn:aws:kms:region:account-id:key/key-name"
         ]
      }
   ]
}

AWS에서 fleet manager의 관리자로써 부여하는 권한이다. EC2와 SSM에 대한 full access를 부여하는 것 같다. 아무튼 위 내용대로 정책을 생성하고 EC2에 부여한다.

IAM 롤 KSM 연결 사용자 추가

KMS → Key 생성 → key 사용자에 IAM 역할을 추가합니다.

유저 비밀번호 변경

system manager → fleet manager → 노드 작업 → 암호 재설정

따로 만든 계정이 없어서 root의 비밀번호를 변경하도록 하겠습니다.

암호 재설정 창이 뜨고 재설정할 수 있습니다. 설정 완료 후 완료를 선택합니다. 세션 매니저로 접속해보겠습니다.

KMS 설정 이후 KMS를 통해 암호화된 세션임을 알 수 있습니다.

앞에서 변경했던 계정 비밀번호를 통해 접속 가능한 것을 확인할 수 있습니다.

파일 시스템 확인 & 성능 카운터 확인 & 사용자 및 그룹 확인

파일 시스템 확인

fleet manager → 노드 선택 → 노드 작업 → 파일 시스템

디렉터리, 파일 권한, 수정 날짜, 소유자 등등의 디렉터리 정보를 확인할 수 있습니다.

성능 카운터 확인

fleet manager → 노드 선택 → 노드 작업 → 성능 카운터 확인

CloudWatch 처럼 모니터링할 수 있습니다.

사용자 및 그룹 확인

fleet manager → 노드 선택 → 노드 작업 → 사용자 및 그룹

사용자, UID,GID, 홈 디렉터리, 셸등의 정보를 확인 가능합니다. 또한 콘솔에서 사용자 및 그룹을 생성하거나 삭제할 수 있습니다.

Window 접속

window 연결은 session manager를 통해서 쉘에 접속하는 방법과 유사합니다.

원격 데스크톱 연결을 통해서 RDP를 이용한 접속이 가능합니다. 따로 더 자세하게 서술하진 않겠습니다.