Criação de pilhas usando o modo Direct Change - Guia do usuário avançado do AMS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criação de pilhas usando o modo Direct Change

Há dois requisitos ao iniciar pilhas CloudFormation usando oAWSManagedServicesCloudFormationAdminRole, para que a pilha seja gerenciada pelo AMS:

  • O modelo deve conter umAmsStackTransform.

  • O nome da pilha deve começar com o prefixo stack- seguido por uma sequência alfanumérica de 17 caracteres.

nota

Para usar o com sucessoAmsStackTransform, você deve reconhecer que seu modelo de pilha contém a CAPABILITY_AUTO_EXPAND capacidade para que AWS CloudFormation (CFN) crie ou atualize a pilha. Você faz isso passando o CAPABILITY_AUTO_EXPAND como parte de sua solicitação de criação da pilha. O CFN rejeita a solicitação se esse recurso não for reconhecido quando incluído no modelo. AmsStackTransform O console CFN garante que você transmita esse recurso se tiver a transformação em seu modelo, mas isso pode passar despercebido quando você estiver interagindo com o CFN por meio deles. APIs

Você deve transmitir esse recurso sempre que usar as seguintes chamadas de API CFN:

Ao criar ou atualizar uma pilha com o DCM, as mesmas validações e aprimoramentos do CFN Ingest e do Stack Update CTs são realizados na pilha. Para obter mais informações, consulte AWS CloudFormation Diretrizes, melhores práticas e limitações de ingestão. A exceção é que os grupos de segurança padrão do AMS (SGs) não serão anexados a nenhuma EC2 instância autônoma ou EC2 instância em grupos de Auto Scaling (). ASGs Ao criar seu CloudFormation modelo, com EC2 instâncias autônomas ou ASGs, você pode anexar o padrão. SGs

nota

Agora, as funções do IAM podem ser criadas e gerenciadas com AWSManagedServicesCloudFormationAdminRole o.

O padrão do AMS SGs tem regras de entrada e saída que permitem que as instâncias sejam iniciadas com êxito e sejam acessadas posteriormente por meio de SSH ou RDP pelas operações do AMS e por você. Se você achar que os grupos de segurança padrão do AMS são muito permissivos, você pode criar seus próprios SGs com regras mais restritivas e anexá-los à sua instância, desde que isso ainda permita que você e as operações do AMS acessem a instância durante incidentes.

Os grupos de segurança padrão do AMS são os seguintes:

  • SentinelDefaultSecurityGroupPrivateOnly: Pode ser acessado no modelo CFN por meio desse parâmetro SSM /ams/${VpcId}/SentinelDefaultSecurityGroupPrivateOnly

  • SentinelDefaultSecurityGroupPrivateOnlyEgressAll: Pode ser acessado no modelo CFN por meio desse parâmetro SSM /ams/${VpcId}/SentinelDefaultSecurityGroupPrivateOnlyEgressAll

Transformação AMS

Adicione uma Transform declaração ao seu CloudFormation modelo. Isso adiciona uma CloudFormation macro que valida e registra a pilha no AMS no momento da inicialização.

Exemplo de JSON

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

Exemplo de YAML

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

Adicione também a Transform instrução ao atualizar o modelo de uma pilha existente.

Exemplo de 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"}       }     }   } }

Exemplo de 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

Nome da pilha

O nome da pilha deve começar com o prefixo stack- seguido por uma sequência alfanumérica de 17 caracteres. Isso é para manter a compatibilidade com outros sistemas AMS que operam na pilha IDs AMS. 

Veja a seguir exemplos de maneiras de gerar uma pilha IDs compatível:

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]$_}) )