Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
CloudFormation pila de ingesta: ejemplos de validadores CFN
Estos ejemplos pueden ayudarte a preparar tu plantilla para una ingesta exitosa.
Validación de formato
Compruebe que la plantilla contenga una sección de «Recursos» y que todos los recursos definidos en ella tengan un valor de «Tipo».
{ "AWSTemplateFormatVersion": "2010-09-09", "Description" : "Create a SNS topic", "Resources": { "SnsTopic": { "Type": "AWS::SNS::Topic" } } }
Valide que las claves raíz de la plantilla estén permitidas. Las claves raíz permitidas son:
[ "AWSTemplateFormatVersion", "Description", "Mappings", "Parameters", "Conditions", "Resources", "Rules", "Outputs", "Metadata" ]
La revisión manual requiere validación
Si la plantilla contiene los siguientes recursos, la validación automática fallará y necesitarás una revisión manual.
Las políticas que se muestran son áreas de alto riesgo desde el punto de vista de la seguridad. Por ejemplo, una política de compartimentos de S3 que permita a cualquier persona, excepto a usuarios o grupos específicos, crear objetos o escribir permisos es extremadamente peligrosa. Por lo tanto, validamos las políticas y las aprobamos o rechazamos en función del contenido, y esas políticas no se pueden crear automáticamente. Estamos investigando posibles enfoques para abordar este problema.
Actualmente, no contamos con una validación automática de los siguientes recursos.
[ "S3::BucketPolicy", "SNS::TopicPolicy", "SQS::QueuePolicy" ]
Validación de parámetros
Valide que si un parámetro de plantilla no tiene un valor proporcionado, debe tener un valor predeterminado.
Validación de atributos de recursos
Verificación de atributos obligatoria: deben existir ciertos atributos para ciertos tipos de recursos.
"VPCOptions" debe existir en
AWS::OpenSearch::Domain"CludsterSubnetGroupName" debe existir en
AWS::Redshift::Cluster
{ "AWS::OpenSearch::Domain": [ "VPCOptions" ], "AWS::Redshift::Cluster": [ "ClusterSubnetGroupName" ] }
Verificación de atributos no permitidos: ciertos atributos *no* deben existir para ciertos tipos de recursos.
"SecretString" no debe existir en "» AWS::SecretsManager::Secret
"MongoDbSettings" no debe existir en "AWS::DMS::Endpoint»
{ "AWS::SecretsManager::Secret": [ "SecretString" ], "AWS::DMS::Endpoint": [ "MongoDbSettings" ] }
Comprobación de parámetros SSM: para los atributos de la siguiente lista, los valores deben especificarse mediante Secrets Manager o Systems Manager Parameter Store (Secure String Parameter):
{ "RDS::DBInstance": [ "MasterUserPassword", "TdeCredentialPassword" ], "RDS::DBCluster": [ "MasterUserPassword" ], "ElastiCache::ReplicationGroup": [ "AuthToken" ], "DMS::Certificate": [ "CertificatePem", "CertificateWallet" ], "DMS::Endpoint": [ "Password" ], "CodePipeline::Webhook": { "AuthenticationConfiguration": [ "SecretToken" ] }, "DocDB::DBCluster": [ "MasterUserPassword" ] },
Algunos atributos deben cumplir ciertos patrones; por ejemplo, los nombres de los perfiles de las instancias de IAM no deben empezar con prefijos reservados de AMS y el valor del atributo debe coincidir con la expresión regular específica, como se muestra:
{ "AWS::EC2::Instance": { "IamInstanceProfile": [ "^(?!arn:aws:iam|ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+", "arn:aws:iam::(\\$\\{AWS::AccountId\\}|[0-9]+):instance-profile/(?!ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+" ] }, "AWS::AutoScaling::LaunchConfiguration": { "IamInstanceProfile": [ "^(?!arn:aws:iam|ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+", "arn:aws:iam::(\\$\\{AWS::AccountId\\}|[0-9]+):instance-profile/(?!ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+" ] }, "AWS::EC2::LaunchTemplate": { "LaunchTemplateData.IamInstanceProfile.Name": [ "^(?!ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+" ], "LaunchTemplateData.IamInstanceProfile.Arn": [ "arn:aws:iam::(\\$\\{AWS::AccountId\\}|[0-9]+):instance-profile\/(?!ams|Ams|AMS|AWSManagedServices|Managed_Services|mc|Mc|MC|sentinel|Sentinel).+" ] } }
Validación de recursos
En la plantilla solo se pueden especificar los recursos permitidos; esos recursos se describen en. Recursos admitidos
EC2 Las pilas y los grupos de Auto Scaling (ASGs) no están permitidos en la misma pila debido a las limitaciones de aplicación de parches.
Validación de las reglas de ingreso de grupos de seguridad
Para las solicitudes que provienen de los tipos de cambio CFN Ingest Create o Stack Update CT:
Si (
IpProtocoles tcp o 6) AND (el puerto es 80 o 443), no hay restricciones en cuanto al valorCidrIPDe lo contrario,
CidrIPno puede ser 0.0.0.0/0
Para las solicitudes que provienen de Service Catalog (productos de Service Catalog):
Además de la validación del tipo de cambio CFN Ingest Create o Stack Update CT, solo se
ip_protocolspuede acceder al puerto de entradamanagement_portscon el protocolo introducido a través de:allowed_cidrs{ "ip_protocols": ["tcp", "6", "udp", "17"], "management_ports": [22, 23, 389, 636, 1494, 1604, 2222, 3389, 5900, 5901, 5985, 5986], "allowed_cidrs": ["10.0.0.0/8", "100.64.0.0/10", "172.16.0.0/12", "192.168.0.0/16"] }