Validación de las implementaciones de pilas
Con la validación previa a la implementación, puede identificar y resolver posibles problemas de implementación antes de que CloudFormation aprovisiones recursos. La validación previa a la implementación se ejecuta automáticamente en las operaciones Crear pila, Actualizar pila y Crear conjunto de cambios, y detecta errores comunes en cuestión de segundos.
Temas
Cómo funciona la validación previa a la implementación
La validación previa a la implementación implica estas fases:
-
Inicio de una operación de pila: cree una pila, actualice una pila o cree un conjunto de cambios como lo haría normalmente. La validación previa a la implementación está habilitada de forma predeterminada en las tres operaciones.
-
Ejecución de la validación: CloudFormation ejecuta varias comprobaciones de validación en la plantilla y el entorno de destino. CloudFormation admite seis tipos de validación previa a la implementación. La validación de la sintaxis de las propiedades y la detección de conflictos en los nombres de los recursos se ejecutan en todas las operaciones compatibles. Otras cuatro validaciones se ejecutan únicamente durante la creación del conjunto de cambios: la validación de que el bucket de S3 está vacío, la comprobación de Service Quotas, la detección de conflictos en el registrador y la preparación para eliminar el repositorio de ECR.
-
Revise los resultados de la validación: CloudFormation proporciona comentarios detallados sobre cualquier problema encontrado, incluida una ruta precisa que indica la ubicación del problema en la plantilla, lo que elimina la depuración manual de la plantilla.
-
Resuelva los problemas: para solucionar los problemas identificados, actualice las plantillas o resuelva los conflictos antes de proceder con la implementación.
-
Ejecución con confianza: implemente su conjunto de cambios sabiendo que los escenarios de error más comunes se han validado por adelantado.
nota
En el caso de las operaciones Crear pila y Actualizar pila, la validación se ejecuta como parte de la propia operación. Si la validación tiene un error en el modo FAIL, la operación se detiene antes de aprovisionar los recursos y el estado de la pila refleja el error de validación. En el caso de los conjuntos de cambios, se muestra el estado FAILED del conjunto de cambios.
Consideraciones
Cuando utilice la validación previa a la implementación, tenga en cuenta lo siguiente:
-
La validación previa a la implementación se centra en los tres escenarios de error de implementación más comunes. No garantiza que la implementación se realice correctamente, pero reduce la probabilidad de que se produzcan errores comunes.
-
Los modos de validación se comportan de forma diferente:
-
El modo FAIL detiene la operación antes de que se aprovisione ningún recurso cuando la validación detecta errores. En el caso de CreateStack y UpdateStack, la operación falla y el estado de la pila refleja el error de validación. En Crear conjunto de cambios, el estado del conjunto de cambios muestra FAILED. Esto se aplica a los errores de sintaxis de las propiedades y a los conflictos de nomenclatura de los recursos.
-
El modo de ADVERTENCIA permite que la creación del conjunto de cambios se realice correctamente a pesar de los errores de validación y proporciona advertencias que los desarrolladores pueden revisar y corregir antes de ejecutarlas. Esto se aplica a las infracciones de restricciones, como el vacío de los buckets de S3, que puede resolverse mediante una intervención manual.
-
-
En el caso de las operaciones de conjunto de cambio, los resultados de la validación están vinculados al conjunto de cambios específico. Si modifica la plantilla, cree un nuevo conjunto de cambios para obtener los resultados de la validación actualizados. Para las operaciones de CreateStack y UpdateStack, utilice el comando
describe-eventscon el ID de operación para acceder a los resultados de la validación. -
La validación de los buckets de S3 solo comprueba la presencia de objetos, no las políticas de buckets u otras restricciones que puedan impedir su eliminación.
-
La validación previa a la implementación añade una pequeña cantidad de latencia a las operaciones Crear pila y Actualizar pila mientras se ejecutan las validaciones. Normalmente, tarda unos segundos. Si necesita omitir la validación de una operación específica, utilice el parámetro
DisableValidation.
Requisitos previos
Para utilizar la validación previa a la implementación, debe tener:
-
Los permisos de IAM necesarios para crear pilas, actualizar pilas o crear conjuntos de cambios y leer los recursos en su cuenta. Las comprobaciones de validación que se ejecutan durante la creación del conjunto de cambios requieren los siguientes permisos adicionales:
-
Comprobación de Service Quotas:
cloudwatch:GetMetricData,lambda:GetAccountSettings,servicequotas:GetServiceQuota,ec2:DescribeSecurityGroupsyiam:GetAccountSummary -
Comprobación de conflictos en el registrador:
config:ListConfigurationRecorders -
Comprobaciones de vaciado del bucket de S3 y del repositorio de ECR:
s3:ListBucketV2yecr:ListImages
-
-
Acceda a las Regiones de AWS donde están implementadas sus pilas.
-
Plantillas de CloudFormation que desee validar antes de la implementación.
Deshabilitación de la validación previa de implementaciones
La validación previa a la implementación se ejecuta de forma predeterminada. Para omitir la validación de una operación específica, utilice el parámetro DisableValidation.
Deshabilite la validación en las siguientes situaciones:
-
Cuando ya haya validado la plantilla por otros medios (como
cfn-lint,cdk validate, o comprobaciones de CI) -
Cuando necesite minimizar la latencia de la operación para implementaciones urgentes
-
Cuando un falso positivo conocido bloquea su implementación y necesita continuar
Ejemplos de AWS CLI:
aws cloudformation create-stack --stack-nameMyStack--template-body file://template.yaml --disable-validation
aws cloudformation update-stack --stack-nameMyStack--template-body file://template.yaml --disable-validation
API: establezca el parámetro DisableValidation en true en la llamada a la API CreateStack o UpdateStack.
nota
Al deshabilitar la validación, CloudFormation no detecta errores comunes hasta que intenta aprovisionar recursos.
Validación de la implementación de una pila (consola)
La validación previa a la implementación se ejecuta automáticamente en las operaciones CreateStack y UpdateStack. No hace falta realizar otro paso.
Para validar durante la creación o actualización de una pila
-
Cree o actualice su pila como lo haría normalmente.
-
Si la validación detecta errores, la operación se detiene antes de que comience el aprovisionamiento. El estado de la pila refleja el error de validación.
-
Para revisar los resultados de la validación, abra la pestaña Eventos de la pila y elija el ID de la operación, o elija el enlace del banner o la columna Motivo del estado. La página de vista de operaciones se abre directamente en la pestaña Validaciones de implementación, donde se muestran los detalles de la validación, como el ID lógico, el tipo de recurso, el tipo de validación, el modo y el motivo del estado.
-
Corrija los problemas identificados en la plantilla y vuelva a ejecutar la operación.
Validación mediante un conjunto de cambios (consola)
También puede usar conjuntos de cambios para validar la plantilla antes de la implementación. Los conjuntos de cambios admiten los seis tipos de validación, incluidas las validaciones en modo de advertencia (vaciado del bucket de S3, Service Quotas, conflicto de Config Recorder y preparación para eliminar el repositorio de ECR) que solo están disponibles durante la creación del conjunto de cambios. Puede usar un conjunto de cambios para validar una pila nueva antes de crearla o para validar una actualización de una pila existente.
Para validar mediante un conjunto de cambios
Inicie sesión en la AWS Management Console y abra la consola de CloudFormation en https://console.aws.amazon.com/cloudformation
. -
En la barra de navegación de la parte superior de la pantalla, elija la Región de AWS en donde se encuentra la pila.
-
En la página Pilas, seleccione la pila en ejecución para la que desea crear un conjunto de cambios.
-
En el panel de detalles de la pila, seleccione Actualizar pila y, a continuación, seleccione Crear un conjunto de cambios.
-
En la página Crear conjunto de cambios para
stack-name, cargue la plantilla actualizada o especifique el origen de la plantilla. -
Seleccione Siguiente para continuar con el resto de los pasos de configuración del conjunto de cambios.
-
Si la plantilla incluye recursos de IAM, en Capacidades seleccione Acepto que CloudFormation pueda crear recursos de IAM. Los recursos de IAM pueden modificar los permisos de su cuenta de AWS; revise estos recursos para garantizar que solo se le permitan las acciones que planea. Para obtener más información, consulte la sección sobre reconocimiento de recursos de IAM en plantillas de CloudFormation.
-
En la página Revisar, seleccione Crear conjunto de cambios.
-
CloudFormation crea el conjunto de cambios y ejecuta las comprobaciones de validación. Revise los resultados de la validación en la pestaña Validación de la implementación.
-
Si la validación se aprueba o está satisfecho con las advertencias, seleccione Ejecutar conjunto de cambios para implementar los cambios.
-
Si se produce un error en la validación, corrija los problemas y cree un nuevo conjunto de cambios para volver a validar la implementación.
Validación de la implementación de una pila (AWS CLI)
La validación previa a la implementación se ejecuta automáticamente en los comandos create-stack y update-stack.
Creación de una pila con validación
Utilice el siguiente comando para crear una pila. La validación previa a la implementación se ejecuta automáticamente.
aws cloudformation create-stack \ --stack-nameMyStack\ --template-bodyfile://template.yaml
Actualización de una pila con validación
Utilice el comando siguiente para actualizar una pila. La validación previa a la implementación se ejecuta automáticamente.
aws cloudformation update-stack \ --stack-nameMyStack\ --template-bodyfile://updated-template.yaml
Visualización de los resultados de la validación
Utilice el siguiente comando para ver los resultados de la validación de una operación de pila.
aws cloudformation describe-events \ --stack-nameMyStack
Ejemplo de salida de errores de validación:
{ "OperationEvents":[ { "EventId":"9b5c9a29-4704-4ad0-8082-afb49418d55b", "StackId":"arn:aws:cloudformation:us-east-1:123456789012:stack/MyStack/c3908380-b357-11f0-a97f-0ad08f35df65", "OperationId":"f558b823-e1e3-4de3-a222-e6b930ddcad4", "OperationType":"CREATE_STACK", "OperationStatus":"FAILED", "EventType":"STACK_EVENT", "Timestamp":"2025-10-27T17:10:02.923Z", "StartTime":"2025-10-27T17:09:57.537Z", "EndTime":"2025-10-27T17:10:02.923Z" }, { "EventId":"2d8c3262-3468-4283-82fb-6e780e9e4f1d", "StackId":"arn:aws:cloudformation:us-east-1:123456789012:stack/MyStack/c3908380-b357-11f0-a97f-0ad08f35df65", "OperationId":"f558b823-e1e3-4de3-a222-e6b930ddcad4", "OperationType":"CREATE_STACK", "EventType":"VALIDATION_ERROR", "LogicalResourceId":"NotificationBucket", "PhysicalResourceId":"", "ResourceType":"AWS::S3::Bucket", "Timestamp":"2025-10-27T17:10:02.461Z", "ValidationFailureMode":"FAIL", "ValidationName":"PROPERTY_VALIDATION", "ValidationStatus":"FAILED", "ValidationStatusReason":"#/NotificationConfiguration/QueueConfigurations/0: required key [Event] not found", "ValidationPath":"/Resources/NotificationBucket/Properties/NotificationConfiguration/QueueConfigurations/0" } ] }
Validación mediante un conjunto de cambios (AWS CLI)
Los conjuntos de cambios también muestran las validaciones en modo de advertencia que no están disponibles en las operaciones de pila directas.
Para validar mediante un conjunto de cambios
-
Utilice el comando create-change-set:
aws cloudformation create-change-set \ --stack-nameMyStack\ --change-set-nameMyChangeSet\ --change-set-type "CREATE" \ --template-bodyfile://updated-template.yamlEl comando devuelve tanto el ARN del conjunto de cambios como el ARN de la pila.
-
Utilice el comando describe-events con el ARN del conjunto de cambios para revisar el estado y los resultados de la validación.
aws cloudformation describe-events \ --change-set-name "arn:aws:cloudformation:us-east-1:123456789012:changeSet/MyChangeSet/94498df5-1afb-43b1-9869-9f82b2d877ac" -
Para corregir los errores de validación, actualice la plantilla y, a continuación, cree un conjunto de cambios nuevo.
-
Una vez que la validación haya pasado, ejecute el conjunto de cambios:
aws cloudformation execute-change-set \ --change-set-nameMyChangeSet\ --stack-nameMyStack
Tipos de validación
La validación previa a la implementación incluye los siguientes tipos de comprobaciones:
-
Validación de la sintaxis de propiedades: valida las propiedades de los recursos comparándolas con los esquemas de recursos de AWS. Comprueba las propiedades requeridas y los valores de propiedad válidos e identifica las combinaciones de propiedades obsoletas o no compatibles.
-
Detección de conflictos de nombres de recursos: comprueba si hay conflictos de nomenclatura con los recursos de AWS existentes. Valida que los nombres de los recursos cumplen los requisitos de nomenclatura de AWS e identifica los posibles conflictos antes de los intentos de implementación.
-
Validación del vacío de los buckets de S3: advierte cuando se intenta eliminar los buckets de S3 que contienen objetos. Proporciona recuentos de objetos para ayudar a evaluar el impacto de la eliminación y ayuda a prevenir los errores comunes de eliminación de S3.
-
Validación de Service Quotas: comprueba si la creación de recursos superaría las cuotas de servicio de AWS. Actualmente, esta validación solo se ejecuta durante la creación del conjunto de cambios y funciona en modo WARN. La operación continúa y recibirá alertas sobre posibles problemas con las cuotas.
-
Detección de conflictos con el registrador: avisa cuando la plantilla añade reglas a una cuenta que no tiene habilitado el registro o define un registrador en una cuenta en la que ya hay uno activo. Actualmente, esta validación solo se ejecuta durante la creación del conjunto de cambios y funciona en modo WARN.
-
Preparación para la eliminación del repositorio de ECR: valida que los repositorios de ECR que se van a eliminar estén vacíos o tengan la configuración de eliminación forzada adecuada. Actualmente, esta validación solo se ejecuta durante la creación del conjunto de cambios y funciona en modo WARN.
En la siguiente tabla se resume cada tipo de validación, su modo y las operaciones en las que se ejecuta.
| Tipo de validación | Mode | Disponible en |
|---|---|---|
| Validación de la sintaxis de propiedades | FAIL | CreateStack, UpdateStack, CreateChangeSet |
| Conflicto de nombres de recursos (RAE) | FAIL | CreateStack, UpdateStack, CreateChangeSet |
| Vacío de buckets de S3 | WARN | CreateChangeSet |
| Cuota de servicio | WARN | CreateChangeSet |
| Conflicto de registrador | WARN | CreateChangeSet |
| Preparación para eliminar el repositorio de ECR | WARN | CreateChangeSet |
Cada tipo de validación proporciona mensajes de error específicos y una ubicación del error en la plantilla para ayudarle a resolver los problemas rápidamente.
Limitaciones de recursos
Los siguientes tipos de recursos no se admiten para la validación previa a la implementación:
-
AWS::ApiGatewayV2::ApiGatewayManagedOverrides -
AWS::ApiGatewayV2::Stage -
AWS::AppMesh::GatewayRoute -
AWS::AppMesh::Mesh -
AWS::AppMesh::Route -
AWS::AppMesh::VirtualGateway -
AWS::AppMesh::VirtualNode -
AWS::AppMesh::VirtualRouter -
AWS::AppMesh::VirtualService -
AWS::AppStream::Fleet -
AWS::AppStream::Stack -
AWS::AppStream::StackFleetAssociation -
AWS::AppStream::StackUserAssociation -
AWS::AppStream::User -
AWS::AppSync::ApiCache -
AWS::AppSync::ApiKey -
AWS::AppSync::GraphQLSchema -
AWS::AutoScalingPlans::ScalingPlan -
AWS::Budgets::Budget -
AWS::CertificateManager::Certificate -
AWS::Cloud9::EnvironmentEC2 -
AWS::CloudFormation::CustomResource -
AWS::CloudFormation::Macro -
AWS::CloudFormation::WaitCondition -
AWS::CloudFormation::WaitConditionHandle -
AWS::CloudFront::StreamingDistribution -
AWS::CloudWatch::AnomalyDetector -
AWS::CloudWatch::InsightRule -
AWS::CodeBuild::Project -
AWS::CodeBuild::ReportGroup -
AWS::CodeBuild::SourceCredential -
AWS::CodeCommit::Repository -
AWS::CodeDeploy::DeploymentGroup -
AWS::CodeStar::GitHubRepository -
AWS::Config::ConfigurationRecorder -
AWS::Config::DeliveryChannel -
AWS::Config::OrganizationConfigRule -
AWS::Config::RemediationConfiguration -
AWS::DAX::Cluster -
AWS::DAX::ParameterGroup -
AWS::DAX::SubnetGroup -
AWS::DirectoryService::MicrosoftAD -
AWS::DLM::LifecyclePolicy -
AWS::DMS::Certificate -
AWS::DMS::Endpoint -
AWS::DMS::EventSubscription -
AWS::DMS::ReplicationInstance -
AWS::DMS::ReplicationSubnetGroup -
AWS::DMS::ReplicationTask -
AWS::DocDB::DBCluster -
AWS::DocDB::DBClusterParameterGroup -
AWS::DocDB::DBInstance -
AWS::DocDB::DBSubnetGroup -
AWS::DocDB::EventSubscription -
AWS::EC2::ClientVpnAuthorizationRule -
AWS::EC2::ClientVpnEndpoint -
AWS::EC2::ClientVpnRoute -
AWS::EC2::ClientVpnTargetNetworkAssociation -
AWS::EC2::NetworkInterfacePermission -
AWS::ElastiCache::CacheCluster -
AWS::ElastiCache::ReplicationGroup -
AWS::ElastiCache::SecurityGroup -
AWS::ElastiCache::SecurityGroupIngress -
AWS::ElasticLoadBalancing::LoadBalancer -
AWS::ElasticLoadBalancingV2::ListenerCertificate -
AWS::Elasticsearch::Domain -
AWS::EMR::Cluster -
AWS::EMR::InstanceFleetConfig -
AWS::EMR::InstanceGroupConfig -
AWS::FSx::FileSystem -
AWS::FSx::Snapshot -
AWS::FSx::StorageVirtualMachine -
AWS::FSx::Volume -
AWS::Glue::Classifier -
AWS::Glue::Connection -
AWS::Glue::CustomEntityType -
AWS::Glue::DataCatalogEncryptionSettings -
AWS::Glue::DataQualityRuleset -
AWS::Glue::DevEndpoint -
AWS::Glue::MLTransform -
AWS::Glue::Partition -
AWS::Glue::SecurityConfiguration -
AWS::Glue::Table -
AWS::Glue::TableOptimizer -
AWS::Glue::Workflow -
AWS::Greengrass::ConnectorDefinition -
AWS::Greengrass::ConnectorDefinitionVersion -
AWS::Greengrass::CoreDefinition -
AWS::Greengrass::CoreDefinitionVersion -
AWS::Greengrass::DeviceDefinition -
AWS::Greengrass::DeviceDefinitionVersion -
AWS::Greengrass::FunctionDefinition -
AWS::Greengrass::FunctionDefinitionVersion -
AWS::Greengrass::Group -
AWS::Greengrass::GroupVersion -
AWS::Greengrass::LoggerDefinition -
AWS::Greengrass::LoggerDefinitionVersion -
AWS::Greengrass::ResourceDefinition -
AWS::Greengrass::ResourceDefinitionVersion -
AWS::Greengrass::SubscriptionDefinition -
AWS::Greengrass::SubscriptionDefinitionVersion -
AWS::IAM::AccessKey -
AWS::IAM::UserToGroupAddition -
AWS::IoT::PolicyPrincipalAttachment -
AWS::IoT::ThingPrincipalAttachment -
AWS::IoTThingsGraph::FlowTemplate -
AWS::KinesisAnalytics::Application -
AWS::KinesisAnalytics::ApplicationOutput -
AWS::KinesisAnalytics::ApplicationReferenceDataSource -
AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption -
AWS::KinesisAnalyticsV2::ApplicationOutput -
AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource -
AWS::LakeFormation::DataLakeSettings -
AWS::LakeFormation::Permissions -
AWS::LakeFormation::Resource -
AWS::ManagedBlockchain::Member -
AWS::ManagedBlockchain::Node -
AWS::MediaConvert::JobTemplate -
AWS::MediaConvert::Preset -
AWS::MediaConvert::Queue -
AWS::MediaLive::Channel -
AWS::MediaLive::Input -
AWS::MediaLive::InputSecurityGroup -
AWS::MediaStore::Container -
AWS::OpsWorks::App -
AWS::OpsWorks::ElasticLoadBalancerAttachment -
AWS::OpsWorks::Instance -
AWS::OpsWorks::Layer -
AWS::OpsWorks::Stack -
AWS::OpsWorks::UserProfile -
AWS::OpsWorks::Volume -
AWS::Pinpoint::ADMChannel -
AWS::Pinpoint::APNSChannel -
AWS::Pinpoint::APNSSandboxChannel -
AWS::Pinpoint::APNSVoipChannel -
AWS::Pinpoint::APNSVoipSandboxChannel -
AWS::Pinpoint::App -
AWS::Pinpoint::ApplicationSettings -
AWS::Pinpoint::BaiduChannel -
AWS::Pinpoint::Campaign -
AWS::Pinpoint::EmailChannel -
AWS::Pinpoint::EmailTemplate -
AWS::Pinpoint::EventStream -
AWS::Pinpoint::GCMChannel -
AWS::Pinpoint::PushTemplate -
AWS::Pinpoint::Segment -
AWS::Pinpoint::SMSChannel -
AWS::Pinpoint::SmsTemplate -
AWS::Pinpoint::VoiceChannel -
AWS::PinpointEmail::ConfigurationSet -
AWS::PinpointEmail::ConfigurationSetEventDestination -
AWS::PinpointEmail::DedicatedIpPool -
AWS::PinpointEmail::Identity -
AWS::QLDB::Ledger -
AWS::RDS::DBSecurityGroup -
AWS::RDS::DBSecurityGroupIngress -
AWS::Redshift::ClusterSecurityGroup -
AWS::Redshift::ClusterSecurityGroupIngress -
AWS::Route53::RecordSet -
AWS::Route53::RecordSetGroup -
AWS::SageMaker::CodeRepository -
AWS::SageMaker::EndpointConfig -
AWS::SageMaker::Model -
AWS::SageMaker::NotebookInstance -
AWS::SageMaker::NotebookInstanceLifecycleConfig -
AWS::SageMaker::Workteam -
AWS::SDB::Domain -
AWS::ServiceCatalog::AcceptedPortfolioShare -
AWS::ServiceCatalog::LaunchRoleConstraint -
AWS::ServiceCatalog::Portfolio -
AWS::ServiceCatalog::StackSetConstraint -
AWS::ServiceDiscovery::HttpNamespace -
AWS::ServiceDiscovery::Instance -
AWS::ServiceDiscovery::PrivateDnsNamespace -
AWS::ServiceDiscovery::PublicDnsNamespace -
AWS::ServiceDiscovery::Service -
AWS::SES::ReceiptFilter -
AWS::SES::ReceiptRule -
AWS::SES::ReceiptRuleSet -
AWS::SSM::MaintenanceWindow -
AWS::SSM::MaintenanceWindowTarget -
AWS::SSM::MaintenanceWindowTask -
AWS::WAF::ByteMatchSet -
AWS::WAF::IPSet -
AWS::WAF::Rule -
AWS::WAF::SizeConstraintSet -
AWS::WAF::SqlInjectionMatchSet -
AWS::WAF::WebACL -
AWS::WAF::XssMatchSet -
AWS::WAFRegional::ByteMatchSet -
AWS::WAFRegional::GeoMatchSet -
AWS::WAFRegional::IPSet -
AWS::WAFRegional::RateBasedRule -
AWS::WAFRegional::RegexPatternSet -
AWS::WAFRegional::Rule -
AWS::WAFRegional::SizeConstraintSet -
AWS::WAFRegional::SqlInjectionMatchSet -
AWS::WAFRegional::WebACL -
AWS::WAFRegional::WebACLAssociation -
AWS::WAFRegional::XssMatchSet -
AWS::WorkSpaces::Workspace -
AWS::AmazonMQ::ConfigurationAssociation -
AWS::ApiGateway::DomainNameAccessAssociation -
AWS::AppConfig::ExtensionAssociation -
AWS::AppStream::ApplicationEntitlementAssociation -
AWS::AppStream::ApplicationFleetAssociation -
AWS::AppSync::DomainNameApiAssociation -
AWS::AppSync::SourceApiAssociation -
AWS::CleanRooms::ConfiguredTableAssociation -
AWS::CleanRooms::IdNamespaceAssociation -
AWS::CodeGuruReviewer::RepositoryAssociation -
AWS::Cognito::IdentityPoolRoleAttachment -
AWS::Cognito::UserPoolRiskConfigurationAttachment -
AWS::Cognito::UserPoolUICustomizationAttachment -
AWS::Cognito::UserPoolUserToGroupAttachment -
AWS::Connect::IntegrationAssociation -
AWS::Deadline::QueueFleetAssociation -
AWS::Deadline::QueueLimitAssociation -
AWS::EC2::EIPAssociation -
AWS::EC2::EnclaveCertificateIamRoleAssociation -
AWS::EC2::GatewayRouteTableAssociation -
AWS::EC2::IPAMResourceDiscoveryAssociation -
AWS::EC2::IpPoolRouteTableAssociation -
AWS::EC2::LocalGatewayRouteTableVPCAssociation -
AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation -
AWS::EC2::NetworkInterfaceAttachment -
AWS::EC2::RouteServerAssociation -
AWS::EC2::SecurityGroupVpcAssociation -
AWS::EC2::SubnetNetworkAclAssociation -
AWS::EC2::SubnetRouteTableAssociation -
AWS::EC2::TransitGatewayAttachment -
AWS::EC2::TransitGatewayMulticastDomainAssociation -
AWS::EC2::TransitGatewayPeeringAttachment -
AWS::EC2::TransitGatewayRouteTableAssociation -
AWS::EC2::TransitGatewayVpcAttachment -
AWS::EC2::VPCDHCPOptionsAssociation -
AWS::EC2::VPCGatewayAttachment -
AWS::EC2::VolumeAttachment -
AWS::ECS::ClusterCapacityProviderAssociations -
AWS::EKS::PodIdentityAssociation -
AWS::FSx::DataRepositoryAssociation -
AWS::FSx::S3AccessPointAttachment -
AWS::GlobalAccelerator::CrossAccountAttachment -
AWS::LakeFormation::TagAssociation -
AWS::NetworkFirewall::VpcEndpointAssociation -
AWS::NetworkManager::ConnectAttachment -
AWS::NetworkManager::CustomerGatewayAssociation -
AWS::NetworkManager::DirectConnectGatewayAttachment -
AWS::NetworkManager::LinkAssociation -
AWS::NetworkManager::SiteToSiteVpnAttachment -
AWS::NetworkManager::TransitGatewayRouteTableAttachment -
AWS::NetworkManager::VpcAttachment -
AWS::Notifications::ChannelAssociation -
AWS::Notifications::ManagedNotificationAccountContactAssociation -
AWS::Notifications::ManagedNotificationAdditionalChannelAssociation -
AWS::Notifications::OrganizationalUnitAssociation -
AWS::ResourceExplorer2::DefaultViewAssociation -
AWS::Route53Profiles::ProfileAssociation -
AWS::Route53Profiles::ProfileResourceAssociation -
AWS::Route53Resolver::FirewallRuleGroupAssociation -
AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation -
AWS::Route53Resolver::ResolverRuleAssociation -
AWS::SSM::Association -
AWS::SecretsManager::SecretTargetAttachment -
AWS::SecurityHub::PolicyAssociation -
AWS::ServiceCatalog::PortfolioPrincipalAssociation -
AWS::ServiceCatalog::PortfolioProductAssociation -
AWS::ServiceCatalog::ServiceActionAssociation -
AWS::ServiceCatalog::TagOptionAssociation -
AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation -
AWS::ServiceCatalogAppRegistry::ResourceAssociation -
AWS::VpcLattice::ServiceNetworkResourceAssociation -
AWS::VpcLattice::ServiceNetworkServiceAssociation -
AWS::VpcLattice::ServiceNetworkVpcAssociation -
AWS::WAFv2::WebACLAssociation -
AWS::Wisdom::AssistantAssociation -
AWS::WorkspacesInstances::VolumeAssociation -
AWS::IAM::Policy -
AWS::SNS::TopicPolicy -
AWS::SQS::QueuePolicy -
AWS::EC2::NetworkAclEntry -
AWS::EC2::VPNGatewayRoutePropagation -
AWS::CloudFormation::Stack -
AWS::CloudWatch::MetricStream -
AWS::WorkSpaces::ConnectionAlias -
AWS::IoT::ProvisioningTemplate -
AWS::MediaPackage::Channel -
AWS::CloudFront::OriginRequestPolicy -
AWS::Route53Resolver::ResolverQueryLoggingConfig -
AWS::NetworkManager::TransitGatewayRegistration -
AWS::ImageBuilder::Image -
AWS::Config::ConformancePack -
AWS::S3::AccessPoint -
AWS::CodeStarConnections::Connection -
AWS::CloudFront::CachePolicy -
AWS::FMS::NotificationChannel -
AWS::ImageBuilder::InfrastructureConfiguration -
AWS::Detective::Graph -
AWS::EC2::CarrierGateway -
AWS::CloudWatch::CompositeAlarm -
AWS::CodeArtifact::Repository -
AWS::GroundStation::DataflowEndpointGroup -
AWS::ElasticLoadBalancingV2::Listener -
AWS::ImageBuilder::ImageRecipe -
AWS::NetworkManager::Device -
AWS::Kendra::DataSource -
AWS::Timestream::Database -
AWS::CodeGuruProfiler::ProfilingGroup -
AWS::Lambda::EventSourceMapping -
AWS::ECR::Repository -
AWS::WAFv2::IPSet -
AWS::GameLift::Alias -
AWS::IoTSiteWise::Asset -
AWS::OpsWorksCM::Server -
AWS::IoT::Authorizer -
AWS::WAFv2::RuleGroup -
AWS::NetworkManager::Site -
AWS::ResourceGroups::Group -
AWS::MediaPackage::PackagingConfiguration -
AWS::ImageBuilder::ImagePipeline -
AWS::ECS::TaskDefinition -
AWS::Macie::CustomDataIdentifier -
AWS::MediaPackage::OriginEndpoint -
AWS::Logs::LogGroup -
AWS::CodeArtifact::Domain -
AWS::Kendra::Faq -
AWS::ECS::TaskSet -
AWS::WAFv2::RegexPatternSet -
AWS::ECS::Cluster -
AWS::SSO::Assignment -
AWS::GlobalAccelerator::Listener -
AWS::ServiceCatalog::CloudFormationProvisionedProduct -
AWS::RDS::DBProxy -
AWS::EC2::FlowLog -
AWS::ImageBuilder::Component -
AWS::CloudFront::RealtimeLogConfig -
AWS::NetworkManager::GlobalNetwork -
AWS::RDS::DBProxyTargetGroup -
AWS::WAFv2::WebACL -
AWS::IVS::StreamKey -
AWS::IVS::PlaybackKeyPair -
AWS::Macie::Session -
AWS::Route53::HealthCheck -
AWS::Synthetics::Canary -
AWS::Lambda::CodeSigningConfig -
AWS::EFS::AccessPoint -
AWS::Timestream::Table -
AWS::MediaPackage::PackagingGroup -
AWS::ECS::PrimaryTaskSet -
AWS::Config::ConfigurationAggregator -
AWS::GroundStation::Config -
AWS::IoTSiteWise::AssetModel -
AWS::SES::ConfigurationSet -
AWS::ImageBuilder::DistributionConfiguration -
AWS::Config::OrganizationConformancePack -
AWS::EC2::LocalGatewayRoute -
AWS::KMS::Key -
AWS::Detective::MemberInvitation -
AWS::EKS::FargateProfile -
AWS::MediaPackage::Asset -
AWS::GlobalAccelerator::EndpointGroup -
AWS::Macie::FindingsFilter -
AWS::IoT::Certificate -
AWS::SageMaker::MonitoringSchedule -
AWS::IVS::Channel -
AWS::Kendra::Index -
AWS::EventSchemas::RegistryPolicy -
AWS::KinesisFirehose::DeliveryStream -
AWS::GlobalAccelerator::Accelerator -
AWS::EC2::PrefixList -
AWS::GameLift::GameServerGroup -
AWS::NetworkManager::Link -
AWS::EFS::FileSystem -
AWS::Route53::HostedZone -
AWS::GroundStation::MissionProfile -
AWS::KMS::Alias -
AWS::FMS::Policy -
AWS::SSO::PermissionSet -
AWS::StepFunctions::StateMachine -
AWS::QLDB::Stream -
AWS::IoTSiteWise::Gateway -
AWS::ECS::Service -
AWS::ECS::CapacityProvider -
AWS::EC2::SecurityGroup -
AWS::EC2::SecurityGroupIngress -
AWS::EC2::SecurityGroupEgress -
AWS::EC2::EC2Fleet -
AWS::IAM::Group -
AWS::IAM::Role -
AWS::IAM::User -
AWS::ApiGateway::GatewayResponse -
AWS::S3::BucketPolicy -
AWS::SNS::Topic -
AWS::SNS::Subscription -
AWS::RDS::DBInstance -
AWS::RDS::DBParameterGroup -
AWS::RDS::DBCluster -
AWS::RDS::DBClusterParameterGroup -
AWS::RDS::DBSubnetGroup -
AWS::RDS::EventSubscription -
AWS::RDS::GlobalCluster -
AWS::RDS::OptionGroup -
AWS::Neptune::DBInstance -
AWS::Neptune::DBParameterGroup -
AWS::Neptune::DBCluster -
AWS::Neptune::DBClusterParameterGroup -
AWS::Neptune::DBSubnetGroup -
AWS::Redshift::Cluster -
AWS::Redshift::ClusterParameterGroup -
AWS::Redshift::ClusterSubnetGroup -
AWS::Redshift::EndpointAccess -
AWS::Redshift::EndpointAuthorization -
AWS::Redshift::EventSubscription -
AWS::Redshift::ScheduledAction -
AWS::ElastiCache::SubnetGroup -
AWS::ApiGateway::BasePathMapping -
AWS::ApiGatewayV2::DomainName -
AWS::ApplicationAutoScaling::ScalableTarget -
AWS::Connect::ApprovedOrigin -
AWS::EKS::Cluster -
AWS::IAM::InstanceProfile -
AWS::Lambda::EventInvokeConfig