AWS AWSCloudFormation documentation change
Summary
Removed two example sections: 'Create a service with a health check grace period' and 'Create a service with ECS Exec enabled' including their JSON/YAML templates
Security assessment
The removed content includes operational examples (health check grace period) and a security feature example (ECS Exec). While ECS Exec is a security feature, removing its documentation example doesn't indicate a security issue nor add security documentation. No vulnerability or exploit mitigation is mentioned in the diff.
Diff
diff --git a/AWSCloudFormation/latest/TemplateReference/aws-resource-ecs-service.md b/AWSCloudFormation/latest/TemplateReference/aws-resource-ecs-service.md index 993a4b8f5..f3b889670 100644 --- a//AWSCloudFormation/latest/TemplateReference/aws-resource-ecs-service.md +++ b//AWSCloudFormation/latest/TemplateReference/aws-resource-ecs-service.md @@ -592,4 +591,0 @@ The ARN that identifies the service. For more information about the ARN format, - * Create a service with a health check grace period - - * Create a service with ECS Exec enabled - @@ -1207,483 +1202,0 @@ The Amazon ECS service requires an explicit dependency on the Application Load B -### Create a service with a health check grace period - -The following example creates a service with a parameter that enables users to specify how many seconds that the Amazon ECS service scheduler should ignore unhealthy Elastic Load Balancing target health checks after a task has first started. - -#### JSON - - - { - "AWSTemplateFormatVersion" : "2010-09-09", - "Description" : "Creating ECS service", - "Parameters": { - "AppName": { - "Type":"String", - "Description": "Name of app requiring ELB exposure", - "Default": "simple-app" - }, - "AppContainerPort": { - "Type":"Number", - "Description": "Container port of app requiring ELB exposure", - "Default": "80" - }, - "AppHostPort": { - "Type":"Number", - "Description": "Host port of app requiring ELB exposure", - "Default": "80" - }, - "ServiceName": { - "Type": "String" - }, - "LoadBalancerName": { - "Type": "String" - }, - "HealthCheckGracePeriodSeconds": { - "Type": "String" - } - }, - "Resources": { - "ECSCluster": { - "Type": "AWS::ECS::Cluster" - }, - "taskdefinition": { - "Type": "AWS::ECS::TaskDefinition", - "Properties" : { - "ContainerDefinitions" : [ - { - "Name": {"Ref": "AppName"}, - "MountPoints": [ - { - "SourceVolume": "my-vol", - "ContainerPath": "/var/www/my-vol" - } - ], - "Image":"amazon/amazon-ecs-sample", - "Cpu": "10", - "PortMappings":[ - { - "ContainerPort": {"Ref":"AppContainerPort"}, - "HostPort": {"Ref":"AppHostPort"} - } - ], - "EntryPoint": [ - "/usr/sbin/apache2", - "-D", - "FOREGROUND" - ], - "Memory":"500", - "Essential": "true" - }, - { - "Name": "busybox", - "Image": "busybox", - "Cpu": "10", - "EntryPoint": [ - "sh", - "-c" - ], - "Memory": "500", - "Command": [ - "/bin/sh -c \"while true; do /bin/date > /var/www/my-vol/date; sleep 1; done\"" - ], - "Essential" : "false", - "VolumesFrom": [ - { - "SourceContainer": {"Ref":"AppName"} - } - ] - } - ], - "Volumes": [ - { - "Host": { - "SourcePath": "/var/lib/docker/vfs/dir/" - }, - "Name": "my-vol" - } - ] - } - }, - "ECSService": { - "Type": "AWS::ECS::Service", - "Properties" : { - "Cluster": {"Ref": "ECSCluster"}, - "DeploymentConfiguration": { - "MaximumPercent": 200, - "MinimumHealthyPercent": 100 - }, - "DesiredCount": 1, - "HealthCheckGracePeriodSeconds": {"Ref": "HealthCheckGracePeriodSeconds"}, - "LoadBalancers": [{ - "ContainerName": {"Ref" : "AppName"}, - "ContainerPort": {"Ref":"AppContainerPort"}, - "LoadBalancerName": {"Ref": "elb"} - }], - "PlacementStrategies": [{ - "Type" : "binpack", - "Field": "memory" - }, { - "Type": "spread", - "Field": "host" - }], - "PlacementConstraints": [{ - "Type": "memberOf", - "Expression": "attribute:ecs.availability-zone != us-east-1d" - }, { - "Type": "distinctInstance" - }], - "TaskDefinition" : {"Ref":"taskdefinition"}, - "ServiceName": {"Ref": "ServiceName"}, - "Role": {"Ref": "Role"} - } - }, - "elb": { - "Type": "AWS::ElasticLoadBalancing::LoadBalancer", - "Properties": { - "LoadBalancerName": {"Ref": "LoadBalancerName"}, - "Listeners": [{ - "InstancePort": {"Ref": "AppHostPort"}, - "LoadBalancerPort": "80", - "Protocol": "HTTP" - }], - "Subnets": [{"Ref":"Subnet1"}] - }, - "DependsOn": "GatewayAttachment" - }, - "VPC": { - "Type": "AWS::EC2::VPC", - "Properties": { - "CidrBlock": "10.0.0.0/24" - } - }, - "Subnet1": { - "Type": "AWS::EC2::Subnet", - "Properties": { - "VpcId": { "Ref": "VPC" }, - "CidrBlock": "10.0.0.0/25" - } - }, - "InternetGateway": { - "Type": "AWS::EC2::InternetGateway" - }, - "GatewayAttachment": { - "Type": "AWS::EC2::VPCGatewayAttachment", - "Properties": { - "InternetGatewayId": {"Ref": "InternetGateway"}, - "VpcId": {"Ref": "VPC"} - } - }, - "Role": { - "Type": "AWS::IAM::Role", - "Properties": { - "AssumeRolePolicyDocument": { - "Version": "2008-10-17", - "Statement": [ - { - "Sid": "", - "Effect": "Allow", - "Principal": { - "Service": "ecs.amazonaws.com" - }, - "Action": "sts:AssumeRole" - } - ] - }, - "ManagedPolicyArns": ["arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceRole"] - } - } - }, - "Outputs" : { - "Cluster": { - "Value": {"Ref" : "ECSCluster"}