AWSSupport-ContainEC2Instance - AWS Systems Manager Automation 실행서 참조

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWSSupport-ContainEC2Instance

설명

AWSSupport-ContainEC2Instance 실행서는 잠재적으로 손상되거나 의심스러운 상황에 직면했을 때 Amazon EC2 인스턴스를 격리하려면 어떻게 해야 합니까? 문서에 설명된 절차에 대한 자동화된 솔루션을 제공합니다. 자동화는 지정한 값에 따라 분기됩니다.

어떻게 작동하나요?

이 Automation 실행서는 일련의 조정된 단계를 통해 Amazon EC2 인스턴스의 네트워크 억제를 AWSSupport-ContainEC2Instance 수행합니다. Contain 모드에서 실행되면 먼저 입력 파라미터를 검증하고 인스턴스가 종료되지 않았는지 확인합니다. 그런 다음 이후 복원을 위해 현재 보안 그룹 구성을 Amazon S3 버킷에 백업합니다. 실행서는 임시 "모든 액세스" 보안 그룹과 최종 "컨테인먼트" 보안 그룹의 두 보안 그룹을 생성합니다. 인스턴스의 네트워크 인터페이스를 원래 보안 그룹에서 모든 액세스 보안 그룹으로, 마지막으로 격리 보안 그룹으로 점진적으로 전환합니다. 지정된 경우 인스턴스의 암호화되지 않은 백업과 암호화된 AMI 백업을 모두 생성합니다. Auto Scaling 그룹의 인스턴스의 경우 필요한 Auto Scaling 그룹 수정을 처리하고 인스턴스를 대기 상태로 전환합니다. Release 모드에서 실행되면 Amazon S3의 백업된 설정을 사용하여 인스턴스를 원래 네트워크 구성으로 복원합니다. 실행서는 실제 변경 없이 작업을 미리 볼 수 있는 DryRun 파라미터를 지원하며, 억제 및 릴리스 워크플로 전반에 걸친 포괄적인 오류 처리 및 보고 메커니즘을 포함합니다.

중요
  • 이 실행서는 보안 그룹 수정, 생성, Auto Scaling 그룹과의 AMI상호 작용 등 승격된 권한이 필요한 다양한 작업을 수행합니다. 이러한 작업은 잠재적으로 권한 에스컬레이션으로 이어지거나 계정의 다른 워크로드에 영향을 미칠 수 있습니다. AutomationAssumeRole 파라미터에 지정된 역할에 부여된 권한을 검토하고 의도된 사용 사례에 적합한지 확인해야 합니다. IAM 권한에 대한 자세한 내용은 다음 AWS 설명서를 참조하세요AWS Identity and Access Management (IAM) PermissionsAWS Systems Manager Automation Permissions.

  • 이 실행서는 워크로드를 사용할 수 없거나 중단시킬 수 있는 변경 작업을 수행합니다. 특히 대상 Amazon EC2 인스턴스와 연결된 보안 그룹을 수정하여 네트워크 연결에 영향을 미칠 수 있습니다. 또한 인스턴스가 Auto Scaling 그룹의 일부인 경우 실행서는 그룹의 구성을 수정하여 조정 동작에 영향을 미칠 수 있습니다.

  • 격리 프로세스 중에이 실행서는 보안 그룹 및와 같은 추가 리소스를 생성합니다AMI. 이러한 리소스에는 식별을 위해 태그가 지정되어 있지만, 격리 프로세스가 완료된 후 리소스의 생성을 파악하고 적절한 정리 또는 관리를 보장해야 합니다.

  • Action 파라미터가 로 설정된 경우 Release이 실행서는 Amazon EC2 인스턴스의 구성을 원래 상태로 복원하려고 시도합니다. 그러나 복원 프로세스가 실패하여 인스턴스가 일관되지 않은 상태로 유지될 위험이 있습니다. 실행서는 이러한 실패 시 수동 복원에 대한 지침을 제공하지만 복원 프로세스 중에 잠재적 문제를 처리할 준비가 되어 있어야 합니다.

프로덕션 환경에서 실행하기 전에 런북을 철저히 검토하고, 런북의 잠재적 영향을 이해하고, 비프로덕션 환경에서 테스트하는 것이 좋습니다.

이 자동화 실행(콘솔)

문서 유형

자동화

소유자

Amazon

플랫폼

/

필수 IAM 권한

실행서를 성공적으로 사용하려면 AutomationAssumeRole 파라미터에 다음 작업이 필요합니다.

  • autoscaling:CreateOrUpdateTags

  • autoscaling:DeleteTags

  • autoscaling:DescribeAutoScalingGroups

  • autoscaling:DescribeAutoScalingInstances

  • autoscaling:DescribeTags

  • autoscaling:EnterStandby

  • autoscaling:ExitStandby

  • autoscaling:UpdateAutoScalingGroup

  • ec2:AuthorizeSecurityGroupEgress

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:CopyImage

  • ec2:CreateImage

  • ec2:CreateSecurityGroup

  • ec2:CreateSnapshot

  • ec2:CreateTags

  • ec2:DeleteSecurityGroup

  • ec2:DeleteTags

  • ec2:DescribeImages

  • ec2:DescribeInstances

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSnapshots

  • ec2:DescribeTags

  • ec2:ModifyNetworkInterfaceAttribute

  • ec2:RevokeSecurityGroupEgress

  • kms:CreateGrant

  • kms:DescribeKey

  • kms:GenerateDataKeyWithoutPlaintext

  • kms:ReEncryptFrom

  • kms:ReEncryptTo

  • s3:CreateBucket

  • s3:DeleteObjectTagging

  • s3:GetAccountPublicAccessBlock

  • s3:GetBucketAcl

  • s3:GetBucketLocation

  • s3:GetBucketOwnershipControls

  • s3:GetBucketPolicy

  • s3:GetBucketPolicyStatus

  • s3:GetBucketPublicAccessBlock

  • s3:GetObject

  • s3:ListBucket

  • s3:PutAccountPublicAccessBlock

  • s3:PutBucketPolicy

  • s3:PutBucketVersioning

  • s3:PutObject

  • s3:PutObjectTagging

정책 예제:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOperations", "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeTags", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSnapshots", "ec2:DescribeTags", "kms:DescribeKey", "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketOwnershipControls", "s3:GetBucketPolicy", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:GetObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "WriteOperations", "Effect": "Allow", "Action": [ "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteTags", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "autoscaling:UpdateAutoScalingGroup", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CopyImage", "ec2:CreateImage", "ec2:CreateSecurityGroup", "ec2:CreateSnapshot", "ec2:CreateTags", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:ModifyNetworkInterfaceAttribute", "ec2:RevokeSecurityGroupEgress", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo", "s3:CreateBucket", "s3:DeleteObjectTagging", "s3:PutAccountPublicAccessBlock", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "*" } ] }

지침

다음 단계에 따라 자동화를 구성합니다.

  1. Systems ManagerAWSSupport-ContainEC2Instance의 문서로 이동합니다.

  2. Execute automation(자동화 실행)을 선택합니다.

  3. 입력 파라미터에 다음을 입력합니다.

    • AutomationAssumeRole(선택 사항):

      • 설명: (선택 사항) Systems Manager Automation이 사용자를 대신하여 작업을 수행할 수 있도록 허용하는 (IAM) 역할의 Amazon 리소스 이름 AWS AWS Identity and Access Management (ARN)입니다. 역할이 지정되지 않은 경우 Systems Manager Automation은이 실행서를 시작하는 사용자의 권한을 사용합니다.

      • 유형: AWS::IAM::Role::Arn

    • 작업(필수):

      • 설명: (필수) Amazon EC2 인스턴스를 Contain 격리하거나 이전 백업에서 Amazon EC2 인스턴스 구성 원래 구성을 복원하려고 Restore하려면 선택합니다.

      • 유형: 문자열

      • 허용된 패턴: Contain|Restore

    • DryRun(선택 사항):

      • 설명: (선택 사항) 로 설정하면 true자동화는 명령을 실행하지 않고, 대신 각 단계를 자세히 설명하면서 시도한 작업을 보고합니다. 기본값: true.

      • 유형: 부울

      • 허용된 값: true|false

    • CreateAMIBackup(선택 사항):

      • 설명: (선택 사항) 로 설정하면 억제 작업을 수행하기 전에 Amazon EC2 인스턴스trueAMI의가 생성됩니다.

      • 유형: 부울

      • 허용된 값: true|false

    • KmsKey(선택 사항):

      • 설명: (선택 사항) 암호화된 대상 Amazon EC2 인스턴스를 생성하는 데 사용할 AWS KMS 키AMI의 ID입니다. 기본값은 로 설정됩니다alias/aws/ebs.

      • 유형: 문자열

      • 허용된 패턴: ^(((arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:key/)?([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|mrk-[a-f0-9]{32}))|(arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:)?alias/.{1,})$

    • BackupS3BucketName(조건부):

      • 설명: (조건부) Amazon S3 버킷은 Action가 인 경우 구성을 업로드Contain하고가 인 경우 구성을 복원Action합니다Release. 참고: 제공된 버킷이 계정에 없는 경우 자동화는 사용자를 대신하여 Amazon S3 버킷을 생성합니다.

      • 유형: AWS::S3::Bucket::Name

    • TagIdentifier(선택 사항):

      • 설명: (선택 사항) 격리 워크플로 중에이 실행서에 의해 생성되거나 수정된 AWS 리소스에 추가Key=BatchId,Value=78925될 형식의 태그입니다. 이 태그를 사용하여 격리 프로세스 중에 연결된 리소스를 식별하고 관리할 수 있습니다. 복원 워크플로 중에이 파라미터로 지정된 태그가 리소스에서 제거됩니다. 참고: 태그 키와 값은 대/소문자를 구분합니다.

      • 유형: 문자열

      • 허용된 패턴: ^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$

    • BackupS3BucketAccess(조건부):

      • 설명: (조건부) 억제 작업을 실행한 후 백업 Amazon S3 버킷에 대한 액세스가 허용되는 IAM 사용자 또는 역할의 ARN입니다. 이 파라미터는이 Action 일 때 필요합니다Contain. AutomationAssumeRole, 또는 없는 경우 자동화가 실행 중인 컨텍스트의 사용자가 목록에 자동으로 추가됩니다.

      • 유형: 문자열

      • 허용된 패턴: ^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$

    • IngressTrafficRules(선택 사항):

      • 설명: (선택 사항) Amazon EC2 인스턴스에 적용할 형식으로 Cidr, IpProtocol, FromPort 및 ToPort를 사용하여 쉼표로 구분[{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}]된 보안 그룹 수신 규칙 맵입니다. 규칙이 제공되지 않으면 수신 규칙이 없는 보안 그룹이 Amazon EC2 인스턴스에 연결되어 들어오는 트래픽에서 효과적으로 격리됩니다.

      • 유형: MapList

      • 허용된 패턴: ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • EgressTrafficRules(선택 사항):

      • 설명: (선택 사항) Amazon EC2 인스턴스에 적용할 형식으로 Cidr, IpProtocol, FromPort 및 ToPort를 사용하여 쉼표로 구분[{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}]된 보안 그룹 송신 규칙 맵입니다. 규칙이 제공되지 않으면 송신 규칙이 없는 보안 그룹이 Amazon EC2 인스턴스에 연결되므로 모든 발신 트래픽을 효과적으로 방지할 수 있습니다.

      • 유형: MapList

      • 허용된 패턴: ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • BackupS3KeyName(선택 사항):

      • 설명: (선택 사항) Action이 로 설정된 경우 Restore자동화가 대상 Amazon EC2 인스턴스 구성을 복원하는 데 사용할 Amazon S3 키를 지정합니다. Amazon EC2 Amazon S3 키는 일반적으로 형식을 따릅니다{year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json. 키는 이전 억제 자동화 실행의 출력에서 가져올 수 있습니다.

      • 유형: 문자열

      • 허용된 패턴: ^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$

  4. 실행을 선택합니다.

  5. 자동화가 시작됩니다.

  6. 문서는 다음 단계를 수행합니다.

    • ValidateRequiredInputs

      모든 필수 입력이 제공되었는지 확인합니다.

    • AssertInstanceIsNotTerminated

      대상 Amazon EC2 인스턴스가 종료(삭제)되지 않았는지 확인합니다.

    • GetAutoScalingInstanceInfo

      대상 Amazon EC2 인스턴스가 Auto Scaling 그룹의 일부인 경우 Amazon EC2 인스턴스 수명 주기 및 그룹 이름을 가져옵니다.

    • CheckBackupS3BucketName

      대상 Amazon S3 버킷이 객체에 read 대한 또는 write 퍼블릭 액세스 권한을 부여할 가능성이 있는지 확인합니다. 버킷이 없는 경우 새 Amazon S3 BackupS3BucketName 버킷이 생성됩니다.

    • BranchOnActionAndMode

      입력 파라미터 Action 및를 기반으로 자동화를 분기합니다DryRun.

    • BranchOnAutoScalingGroupMembership

      대상 Amazon EC2 인스턴스가 Auto Scaling 그룹의 일부인지 여부와 수명 주기 상태를 기반으로 자동화를 분기합니다.

    • DescribeAutoScalingGroups

      연결된 Amazon EC2 Auto Scaling 그룹 구성을 가져오고 저장합니다.

    • ModifyAutoScalingGroup

      억제 작업에 연결된 Amazon EC2 Auto Scaling 그룹 구성을 수정하여 Amazon EC2 인스턴스를 Standby 상태로 설정하고 Auto Scaling 그룹 MinSize 용량을 조정합니다.

    • BackupInstanceSecurityGroups

      대상 Amazon EC2 인스턴스 보안 그룹의 구성을 가져오고 저장합니다.

    • CreateAllAccessSecurityGroup

      대상 Amazon EC2 인스턴스의 보안 그룹을 대체하는 모든 수신 트래픽을 허용하는 임시 보안 그룹을 생성합니다.

    • CreateContainmentSecurityGroup

      지정된 수신 및 송신 규칙을 사용하여 제한적인 격리 보안 그룹을 생성하고 임시 모든 액세스 그룹을 해당 그룹으로 대체합니다.

    • BranchOnCreateAMIBackup

      CreateAMIBackup 입력 파라미터를 기반으로 자동화를 분기합니다.

    • AssertSourceInstanceRootVolumeIsEbs

      대상 Amazon EC2 인스턴스 루트 볼륨이 Amazon EBS인지 확인합니다.

    • CreateImage

      대상 Amazon EC2 인스턴스AMI의를 생성합니다.

    • RestoreInstanceConfiguration

      백업에서 대상 Amazon EC2 인스턴스 구성을 복원합니다.

    • ReportContain

      억제 작업에 대한 모의 실행 세부 정보를 출력합니다.

    • ReportRestore

      복원 작업에 대한 모의 실행 세부 정보를 출력합니다.

    • ReportRestoreFailure

      복원 워크플로 실패 시나리오 중에 대상 Amazon EC2 인스턴스 원래 구성을 복원하는 지침을 제공합니다.

    • ReportContainmentFailure

      억제 워크플로 실패 시나리오 중에 대상 Amazon EC2 인스턴스 원래 구성을 복원하는 지침을 제공합니다.

    • FinalOutput

      억제 작업의 세부 정보를 출력합니다.

  7. 실행이 완료되면 출력 섹션에서 실행의 자세한 결과를 검토합니다.

    • FinalOutput.Output

      DryRun이 False로 설정된 경우이 실행서에서 수행하는 억제 작업의 세부 정보를 출력합니다.

    • RestoreInstanceConfiguration.Output

      DryRun이 False로 설정된 경우이 실행서에서 수행하는 복원 작업을 출력합니다.

    • ReportContain.Output

      DryRun이 True로 설정된 경우이 실행서에서 수행하는 억제 작업의 세부 정보를 출력합니다.

    • ReportRestore.Output

      DryRun이 True로 설정된 경우이 실행서에서 수행하는 복원 작업의 세부 정보를 출력합니다.

    • ReportContainmentFailure.Output

      억제 워크플로 실패 시나리오 중에 대상 Amazon EC2 인스턴스 원래 구성을 복원하는 지침을 제공합니다.

    • ReportRestoreFailure.Output

      복원 워크플로 실패 시나리오 중에 대상 Amazon EC2 인스턴스 원래 구성을 복원하는 지침을 제공합니다.

참조

Systems Manager Automation