Direct Change 모드를 사용하여 스택 생성 - AMS 고급 사용 설명서

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

Direct Change 모드를 사용하여 스택 생성

AMS에서 스택을 관리하려면를 사용하여 CloudFormation에서 스택을 시작할 때 다음 두 가지 요구 사항이 있습니다AWSManagedServicesCloudFormationAdminRole.

  • 템플릿에는가 포함되어야 합니다AmsStackTransform.

  • 스택 이름은 접두사 뒤에 17자의 영숫자 문자열stack-로 시작해야 합니다.

참고

를 성공적으로 사용하려면 스택 템플릿에 CloudFormation (CFN)가 스택을 생성하거나 업데이트하기 위한 CAPABILITY_AUTO_EXPAND 기능이 포함되어 있음을 확인해야 AmsStackTransform합니다. 이렇게 하려면를 create-stack 요청의 CAPABILITY_AUTO_EXPAND 일부로 전달합니다. 가 템플릿에 포함될 때이 기능이 확인되지 않으면 CFNAmsStackTransform은 요청을 거부합니다. CFN 콘솔은 템플릿에 변환이 있는 경우이 기능을 전달하도록 보장하지만 APIs를 통해 CFN과 상호 작용할 때이 기능을 놓칠 수 있습니다.

다음 CFN API 호출을 사용할 때마다이 기능을 전달해야 합니다.

DCM을 사용하여 스택을 생성하거나 업데이트할 때 스택에 대해 동일한 CFN 수집 및 스택 업데이트 CTs 검증 및 증강이 수행됩니다. 자세한 내용은 CloudFormation 수집 지침, 모범 사례 및 제한을 참조하세요. 단, AMS 기본 보안 그룹(SGs)은 독립형 EC2 인스턴스 또는 Auto Scaling 그룹(ASGs)의 EC2 인스턴스에 연결되지 않습니다. 독립형 EC2 인스턴스 또는 ASGs를 사용하여 CloudFormation 템플릿을 생성할 때 기본 SGs.

참고

이제를 사용하여 IAM 역할을 생성하고 관리할 수 있습니다AWSManagedServicesCloudFormationAdminRole.

AMS 기본 SGs에는 인스턴스를 성공적으로 시작하고 나중에 AMS 작업 및 사용자에 의해 SSH 또는 RDP를 통해 액세스할 수 있는 수신 및 송신 규칙이 있습니다. AMS 기본 보안 그룹이 너무 허용적이라고 판단되면 사용자와 AMS 작업이 인시던트 발생 시 인스턴스에 액세스할 수 있도록 허용하는 한 보다 제한적인 규칙을 사용하여 자체 SGs를 생성하고 인스턴스에 연결할 수 있습니다.

AMS 기본 보안 그룹은 다음과 같습니다.

  • SentinelDefaultSecurityGroupPrivateOnly:이 SSM 파라미터를 통해 CFN 템플릿에서 액세스할 수 있습니다. /ams/${VpcId}/SentinelDefaultSecurityGroupPrivateOnly

  • SentinelDefaultSecurityGroupPrivateOnlyEgressAll:이 SSM 파라미터를 통해 CFN 템플릿에서 액세스할 수 있습니다. /ams/${VpcId}/SentinelDefaultSecurityGroupPrivateOnlyEgressAll

AMS 변환

CloudFormation 템플릿에 Transform 문을 추가합니다. 그러면 시작 시 스택을 검증하고 AMS에 등록하는 CloudFormation 매크로가 추가됩니다.

JSON 예제

"Transform": {     "Name": "AmsStackTransform",     "Parameters": {       "StackId": {"Ref" : "AWS::StackId"}     }   }

YAML 예제

Transform: Name: AmsStackTransform Parameters: StackId: !Ref 'AWS::StackId'

또한 기존 스택의 템플릿을 업데이트할 때 Transform 문을 추가합니다.

JSON 예제

{   "AWSTemplateFormatVersion": "2010-09-09",   "Description" : "Create an SNS Topic",    "Transform": { "Name": "AmsStackTransform", "Parameters": { "StackId": {"Ref" : "AWS::StackId"} } },   "Parameters": {     "TopicName": {       "Type": "String",       "Default": "HelloWorldTopic"     }   },   "Resources": {     "SnsTopic": {       "Type": "AWS::SNS::Topic",       "Properties": {         "TopicName": {"Ref": "TopicName"}       }     }   } }

YAML 예제

AWSTemplateFormatVersion: '2010-09-09' Description: Create an SNS Topic Transform: Name: AmsStackTransform Parameters: StackId: !Ref 'AWS::StackId' Parameters: TopicName: Type: String Default: HelloWorldTopic Resources: SnsTopic: Type: AWS::SNS::Topic Properties: TopicName: !Ref TopicName

스택 이름

스택 이름은 접두사 뒤에 17자의 영숫자 문자열stack-로 시작해야 합니다. 이는 AMS 스택 IDs. 

다음은 호환되는 스택 IDs.

Bash:

echo "stack-$(env LC_CTYPE=C tr -dc 'a-z0-9' < /dev/urandom | head -c 17)"

Python:

import string import random 'stack-' + ''.join(random.choices(string.ascii_lowercase + string.digits, k=17))

Powershell:

"stack-" + ( -join ((0x30..0x39) + ( 0x61..0x7A) | Get-Random -Count 17 | % {[char]$_}) )