AwsEcsTaskDefinition - Amazon Security Hub
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AwsEcsTaskDefinition

这些区域有:AwsEcsTaskDefinition对象包含有关任务定义的详细信息。任务定义描述 Amazon Elastic Container Service 任务的容器和卷定义。

示例

"AwsEcsTaskDefinition": { "ContainerDefinitions": [ { "Command": ['ruby', 'hi.rb'], "Cpu":128, "Essential": true, "HealthCheck": { "Command": ["CMD-SHELL", "curl -f http://localhost/ || exit 1"], "Interval": 10, "Retries": 3, "StartPeriod": 5, "Timeout": 20 }, "Image": "tongueroo/sinatra:latest", "Interactive": true, "Links": [], "LogConfiguration": { "LogDriver": "awslogs", "Options": { "awslogs-group": "/ecs/sinatra-hi", "awslogs-region": "ap-southeast-1", "awslogs-stream-prefix": "ecs" }, "SecretOptions": [] }, "MemoryReservation": 128, "Name": "web", "PortMappings": [ { "ContainerPort": 4567, "HostPort":4567, "Protocol": "tcp" } ], "Privileged": true, "StartTimeout": 10, "StopTimeout": 100, } ], "Family": "sinatra-hi", "NetworkMode": "host", "RequiresCompatibilities": ["EC2"], "TaskRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", }

AwsEcsTaskDefinition 属性

AwsEcsTaskDefinition 可能具有以下属性。

ContainerDefinitions

可选

描述组成该任务的容器定义的列表。

类型:对象数组

Cpu

可选

任务所使用的 CPU 单元的数量。

类型:字符串

有效值:对于 EC2 启动类型,值没有任何限制。

对于 Fargate 启动类型,该值必须是以下内容之一:256 (.25 vCPU)|512 (.5 vCPU)|1024 (1 vCPU)|2048 (2 vCPU)|4096 (4 vCPU)

ExecutionRoleArn

可选

任务执行角色的 ARN,该角色授予 Amazon ECS 容器代理执行权限。AmazonAPI 代表容器用户进行调用。

类型:字符串

Family

可选

此任务定义注册到的系列的名称。

类型:字符串

最大长度:255

允许使用字符:A-Z、a-z、0-9、-、_

InferenceAccelerators

可选

用于任务中的容器的 Elastic Inference 加速器。

类型:对象数组

IpcMode

可选

用于任务中的容器的 IPC 资源命名空间。

类型:字符串

有效值host | task | none

Memory

可选

任务使用的内存量 (以 MB 为单位)。

类型:字符串

对于 EC2 启动类型,可提供任务级内存值或容器级内存值。

对于 Fargate 启动类型,可用的内存值基于Cpu属性。

Cpu

可用值Memory

256 (.25 vCPU)

512 (0.5 GB) | 1024 (1GB) | 2048 (2GB)

512 (.5 vCPU)

1024(1 GB)| 2048(2 GB)| 3072(3 GB)| 4096(4 GB)

1024 (1 vCPU)

2048(2 GB)| 3072(3 GB)| 4096(4 GB)| 5120(5 GB)| 6144(6 GB)| 7168(7 GB)| 8192(8 GB)

2048 (2 vCPU)

4096 (4GB) 到 16384 (16GB) 之间(以 1024 (1GB) 为增量)

4096 (4 vCPU)

8192 (8GB) 到 30720 (30GB) 之间(以 1024 (1GB) 为增量)

NetworkMode

可选

在任务中用于容器的 Docker 联网模式。

类型:字符串

有效值: awsvpc|bridge|host|none

PidMode

可选

用于任务中的容器的过程命名空间。

类型:字符串

有效值host | task

PlacementConstraints

可选

要用于任务的放置约束对象。

类型:对象数组

ProxyConfiguration

可选

App Mesh 代理的配置详细信息。

类型:对象

RequiresCompatibilities

可选

验证任务定义时所依据的任务启动类型。

类型:字符串数组

TaskRoleArn

可选

授予任务中容器调用权限的 IAM 角色的简称或 ARN。Amazon代表您执行 API 操作。

类型:字符串

Volumes

可选

任务的数据卷定义。

类型:对象数组

ContainerDefinitions

这些区域有:ContainerDefinitions对象包含描述组成任务的容器的定义的列表。

每个容器定义可能具有以下属性。

Command

可选

传递给容器的命令。

类型:字符串数组

Cpu

可选

为容器预留的 CPU 单元数。

类型:Number

DependsOn

可选

为容器启动和关闭定义的依赖关系。

类型:对象数组

DisableNetworking

可选

是否在容器中禁用网络。

类型:Boolean

DnsSearchDomains

可选

提供给容器的 DNS 搜索域的列表。

类型:字符串数组

DnsServers

可选

提供给容器的 DNS 服务器的列表。

类型:字符串数组

DockerLabels

可选

要添加到容器的标签的键值映射。

类型:字符串映射

DockerSecurityOptions

可选

用于为 SELinux 和 AppArmor 多级别安全系统提供自定义标签的字符串列表。

类型:字符串数组

EntryPoint

可选

传递给容器的入口点。

类型:字符串数组

Environment

可选

要传递给容器的环境变量。

类型:对象数组

EnvironmentFiles

可选

包含要传递到容器的环境变量的文件列表。

类型:对象数组

Essential

可选

容器是否必不可少。

如果true(默认值),那么如果容器出现故障或停止,则任务中的其他容器也会停止。

如果false,那么容器故障不会影响任务中的其他容器。

所有任务都必须具有至少一个主要容器。

类型:Boolean

ExtraHosts

可选

要追加到容器上的 /etc/hosts 文件的主机名和 IP 地址映射的列表。

类型:对象数组

FirelensConfiguration

可选

容器的 FireLens 配置。为容器日志指定和配置日志路由器。

类型:对象

HealthCheck

可选

容器的运行状况检查命令和关联的配置参数。

类型:对象

Hostname

可选

要用于容器的主机名。

类型:字符串

Image

可选

用于启动容器的映像。

类型:字符串

Interactive

可选

如果设置为 true,则可以部署要求的容器化应用程序stdin或者tty待分配。

类型:Boolean

Links

可选

表单中容器的链接列表container_name:alias. 允许容器相互进行通信,而无需端口映射。

类型:字符串数组

LinuxParameters

可选

应用到容器的特定于 Linux 的修改,例如 Linux 内核功能。

类型:对象

LogConfiguration

可选

容器的日志配置规范。

类型:对象

Memory

可选

要提供给容器的内存量(以 MiB 为单位)。如果容器尝试使用超出此处指定的内存,则容器将关闭。为任务中的所有容器预留的内存总量必须低于任务内存值(如果指定了一个)。

类型:Number

MemoryReservation

可选

要为容器预留的内存量的软限制(以 MiB 为单位)。

类型:Number

MountPoints

可选

容器中的数据卷的挂载点。

类型:对象数组

Name

可选

容器的名称。

类型:字符串

PortMappings

可选

容器的端口映射的列表。

类型:对象数组

Privileged

可选

是否向容器提供对主机容器实例的提升的特权。提升的权限与 root 用户类似。

类型:Boolean

PseudoTerminal

可选

是否向容器分配 TTY。

类型:Boolean

ReadonlyRootFilesystem

可选

容器是否获得对其根文件系统的只读访问权限。

类型:Boolean

RepositoryCredentials

可选

要使用的私有存储库身份验证凭证。

类型:对象

ResourceRequirements

可选

要分配给容器的资源的类型和数量。目前唯一支持的资源为 GPU。

类型:对象数组

Secrets

可选

要传递到容器的密钥。

类型:对象数组

StartTimeout

可选

在放弃解析容器的依赖项之前要等待的秒数。

类型:Number

StopTimeout

可选

容器由于未自行正常关闭而停止前要等待的秒数。

类型:Number

SystemControls

可选

要在容器中设置的具有命名空间的内核参数的列表。

类型:对象数组

Ulimits

可选

要在容器中设置的 ulimits 的列表。

类型:对象数组

User

可选

要在容器内使用的用户。

类型:字符串

值可能使用以下格式之一。

  • user

  • user:group

  • uid

  • uid:gid

  • user:gid

  • uid:group

VolumesFrom

可选

要从其他容器挂载的数据卷。

类型:对象数组

WorkingDirectory

可选

容器中用于运行命令的工作目录。

类型:字符串

ContainerDefinitions.DependsOn

这些区域有:DependsOn对象包含为容器启动和关闭定义的依赖关系列表。

每个依赖项可能具有以下属性。

Condition

可选

依赖容器的依赖项条件。指示当前容器可以启动之前从属容器的必需状态。

类型:字符串

有效值: START|COMPLETE|SUCCESS|HEALTHY

ContainerName

可选

依赖容器的名称。

类型:字符串

ContainerDefinitions.Environment

这些区域有:Environment对象列出要传递到容器的环境变量。

每个变量可能具有以下属性。

Name

可选

环境变量的名称。

类型:字符串

Value

可选

环境变量的值。

类型:字符串

ContainerDefinitions.EnvironmentFiles

这些区域有:EnvironmentFiles对象包含要传递给容器的环境变量的文件列表。

每个文件可能具有以下属性。

Type

可选

环境文件的类型。

类型:字符串

有效值s3

Value

可选

包含环境变量文件的 S3 对象的 ARN。

类型:字符串

ContainerDefinitions.ExtraHosts

这些区域有:ExtraHosts对象包含要追加到/etc/hosts容器上的文件。

每个条目可能具有以下属性。

Hostname

可选

要用于 /etc/hosts 条目中的主机名。

类型:字符串

IpAddress

可选

要用于 /etc/hosts 条目中的 IP 地址。

类型:字符串

ContainerDefinitions.FirelensConfiguration

这些区域有:FirelensConfiguration对象描述容器的 FireLens 配置。该配置指定并配置容器日志的日志路由器。

FireLensConfiguration 可能具有以下属性。

Options

可选

要用于配置日志路由器的选项。

类型:字符串映射

有效的选项键如下:

  • enable-ecs-log-metadata. 该值可以是true要么false.

  • config-file-type. 该值可以是s3要么file.

  • config-file-value. 值可能是 S3 ARN 或文件路径。

Type

可选

要使用的日志路由器。

类型:

有效值fluentd | fluentbit

ContainerDefinitions.HealthCheck

这些区域有:HealthCheck对象包含容器的运行状况检查命令和关联的配置参数。

HealthCheck 可能具有以下属性。

Command

可选

容器运行的命令,用于确定其运行状况是否正常。

类型:字符串数组

Interval

可选

执行每次运行状况检查间隔的时间,以秒为单位。默认值为 30 秒。

类型:Number

最小值 5

最大值 300

Retries

可选

重试失败的运行状况检查的次数,超过该次数将容器视为不正常。默认值为 3。

类型:Number

最小值 1

最大值 10

StartPeriod

可选

允许容器在未通过运行状况检查之前引导的可选宽限期计入最大重试次数中。

类型:Number

最小值 0

最大值 300

Timeout

可选

等待运行状况检查成功执行的时间长度,以秒为单位,超过该时间则视为失败。默认值是 5。

类型:号码

最小值 2

最大值 60

ContainerDefinitions.LinuxParameters

这些区域有:LinuxParameters对象包含应用到容器的特定于 Linux 的修改,例如 Linux 内核功能。

LinuxParameters 可能具有以下属性。

Capabilities

可选

容器的 Linux 功能,这些功能已在 Docker 提供的默认配置中添加或删除。

类型:对象

Devices

可选

要向容器公开的主机设备。

类型:对象数组

InitProcessEnabled

可选

是否运行init在容器内进程,转发信号和获得进程。

类型:Boolean

MaxSwap

可选

容器可以使用的交换内存总量(以 MiB 为单位)。

类型:Number

SharedMemorySize

可选

/dev/shm 卷的大小值 (以 MiB 为单位)。

类型:Number

Swappiness

可选

配置容器的内存交换行为。确定交换页面的积极程度。价值越大,宽松性越大。默认值为 60。

类型:Number

最小值 0

最大值 100

Tmpfs

可选

tmpfs 挂载的容器路径、挂载选项和大小 (以 MiB 为单位)。

类型:对象数组

Capabilities

这些区域有:Capabilities对象列出容器的 Linux 功能,这些功能已在 Docker 提供的默认配置中添加或删除。

Capabilities 可能具有以下属性。

Add

可选

容器的 Linux 功能,这些功能已添加到 Docker 提供的默认配置。

类型:字符串数组

有效值: "ALL"|"AUDIT_CONTROL"| "AUDIT_WRITE"|"BLOCK_SUSPEND"|"CHOWN"|"DAC_OVERRIDE"|"DAC_READ_SEARCH"|"FOWNER"|"FSETID"|"IPC_LOCK"|"IPC_OWNER"|"KILL"|"LEASE"|"LINUX_IMMUTABLE"|"MAC_ADMIN"| "MAC_OVERRIDE"|"MKNOD"|"NET_ADMIN"|"NET_BIND_SERVICE"|"NET_BROADCAST"|"NET_RAW"|"SETFCAP"|"SETGID"|"SETPCAP"|"SETUID"|"SYS_ADMIN"|"SYS_BOOT"|"SYS_CHROOT"|"SYS_MODULE"|"SYS_NICE"|"SYS_PACCT"|"SYS_PTRACE"|"SYS_RAWIO"|"SYS_RESOURCE"|"SYS_TIME"|"SYS_TTY_CONFIG"|"SYSLOG"|"WAKE_ALARM"

Drop

可选

容器的 Linux 功能,这些功能已从 Docker 提供的默认配置中删除。

类型:字符串数组

有效值: "ALL"|"AUDIT_CONTROL"| "AUDIT_WRITE"|"BLOCK_SUSPEND"|"CHOWN"|"DAC_OVERRIDE"|"DAC_READ_SEARCH"|"FOWNER"|"FSETID"|"IPC_LOCK"|"IPC_OWNER"|"KILL"|"LEASE"|"LINUX_IMMUTABLE"|"MAC_ADMIN"| "MAC_OVERRIDE"|"MKNOD"|"NET_ADMIN"|"NET_BIND_SERVICE"|"NET_BROADCAST"|"NET_RAW"|"SETFCAP"|"SETGID"|"SETPCAP"|"SETUID"|"SYS_ADMIN"|"SYS_BOOT"|"SYS_CHROOT"|"SYS_MODULE"|"SYS_NICE"|"SYS_PACCT"|"SYS_PTRACE"|"SYS_RAWIO"|"SYS_RESOURCE"|"SYS_TIME"|"SYS_TTY_CONFIG"|"SYSLOG"|"WAKE_ALARM"

Devices

这些区域有:Devices对象包含要向容器公开的主机设备。

每个设备可能具有以下属性。

ContainerPath

可选

向主机设备公开的容器内的路径。

类型:

HostPath

可选

主机容器实例上的设备路径。

类型:

Permissions

可选

提供给设备的容器的显式权限。默认情况下,容器具有读取、写入和权限mknod对于设备。

类型:字符串数组

Tmpfs

这些区域有:Tmpfs对象包含 tmpfs 挂载的容器路径、挂载选项和大小 (以 MiB 为单位)。

每个条目可能具有以下属性。

ContainerPath

可选

要挂载 tmpfs 卷的绝对文件路径。

类型:

MountOptions

可选

tmpfs 卷挂载选项列表。

类型:字符串数组

有效值: "defaults"|"ro"|"rw"|"suid"|"nosuid"|"dev"|"nodev"| "exec"|"noexec"|"sync"|"async"|"dirsync"|"remount"|"mand"|"nomand"|"atime"|"noatime"|"diratime"|"nodiratime"|"bind"|"rbind"|"unbindable"|"runbindable"|"private"|"rprivate"|"shared"|"rshared"|"slave"|"rslave"|"relatime"|"norelatime"|"strictatime"|"nostrictatime"| "mode"|"uid"|"gid"|"nr_inodes"| "nr_blocks"|"mpol"

Size

可选

tmpfs 卷的最大大小(以 MiB 为单位)。

类型:号码

ContainerDefinitions.LogConfiguration

这些区域有:LogConfiguration对象包含容器的日志配置规范。

LogConfiguration 可能具有以下属性。

LogDriver

可选

要用于容器的日志驱动程序。

类型:字符串

上的有效值Amazon Fargate: awslogs|splunk|awsfirelens

EC2 实例上的有效值: awslogs|fluentd|gelf|json-file|journald|logentries|syslog|splunk|awsfirelens

Options

可选

要发送到日志驱动程序的配置选项。要求您容器实例上的 Docker Remote API 版本为 1.19 或更高版本。

类型:字符串映射

SecretOptions

可选

要传递到日志配置的密钥。

类型:对象数组

SecretOptions

这些区域有:SecretOptions对象包含要传递到日志配置的密钥。

每个密钥可能具有以下属性。

Name

可选

密钥的名称。

类型:

ValueFrom

可选

要向容器公开的密钥。

该值为密钥管理器密钥的完整 ARN 或 Systems Manager Parameter Store 中的参数的完整 ARN。

类型:字符串

ContainerDefinitions.MountPoints

这些区域有:MountPoints对象列出容器中数据卷的挂载点。

每个挂载点可能具有以下属性。

ContainerPath

可选

要将主机卷挂载到的容器上的路径。

类型:字符串

ReadOnly

可选

容器是否具有卷的只读访问权限。

类型:Boolean

SourceVolume

可选

要挂载的卷的名称。必须与中列出的卷的名称匹配Volumes任务定义的对象。

类型:字符串

ContainerDefinitions.PortMappings

这些区域有:PortMappings对象包含容器的端口映射的列表。

每个端口映射可能具有以下属性。

ContainerPort

可选

绑定到用户指定的或自动分配的主机端口的容器上的端口号。

类型:Number

HostPort

可选

要为容器预留的容器实例上的端口号。

类型:Number

Protocol

可选

用于端口映射的协议。默认为 tcp

类型:字符串

有效值tcp | udp

ContainerDefinitions.RepositoryCredentials

这些区域有:RepositoryCredentials对象包含要使用的私有存储库身份验证凭证。

RepositoryCredentials 可能具有以下属性。

CredentialsParameter

可选

包含私有存储库凭证的密钥的 ARN。

类型:

ContainerDefinitions.ResourceRequirements

这些区域有:ResourceRequirements对象包含要分配给容器的资源列表。

每个资源可能具有以下属性。

Type

可选

要分配给资源的容器的类型。

类型:字符串

有效值GPU | InferenceAccelerator

Value

可选

指定的资源类型的值。

适用于GPU,该值是 Amazon ECS 容器代理为容器预留的物理 GPU 的数量。

适用于InferenceAccelerator,值应与DeviceName中条目的属性InferenceAccelerators对象。

类型:字符串

ContainerDefinitions.Secrets

这些区域有:Secrets对象包含要传递到容器的密钥。

每个密钥可能具有以下属性。

Name

可选

密钥的名称。

类型:字符串

ValueFrom

可选

要向容器公开的密钥。该值为密钥管理器密钥的完整 ARN 或 Systems Manager Parameter Store 中的参数的完整 ARN。

类型:字符串

ContainerDefinitions.SystemControls

这些区域有:SystemControls对象包含要在容器中设置的命名空间内核参数的列表。

每个参数可能具有以下属性。

Namespace

可选

要为其设置值的命名空间内核参数。

类型:字符串

Value

可选

参数的值。

类型:字符串

ContainerDefinitions.Ulimits

这些区域有:Ulimits对象包含要在容器中设置的 ulimits 的列表。

每个 ulimit 可能具有以下属性。

HardLimit

可选

ulimit 类型的硬限制。

类型:Number

Name

可选

ulimit 的类型。

类型:字符串

有效值: core|cpu|data|fsize|locks|memlock|msgqueue|nice|nofile|nproc|rss|rtprio|rttime|sigpending|stack

SoftLimit

可选

ulimit 类型的软限制。

类型:Number

ContainerDefinitions.VolumesFrom

这些区域有:VolumesFrom对象包含要从其他容器挂载的数据卷的列表。

每个数据卷可能具有以下属性。

ReadOnly

可选

容器是否具有卷的只读访问权限。

类型:Boolean

SourceContainer

可选

相同任务定义中要从中挂载卷的另一个容器的名称。

类型:字符串

InferenceAccelerators

这些区域有:InferenceAccelerators对象包含用于任务中的容器的 Elastic Inference 加速器的列表。

每个加速器可能具有以下属性。

DeviceName

可选

Elastic Inference 加速器设备名称。

类型:字符串

DeviceType

可选

要使用的 Elastic Inference 加速器类型。

类型:字符串

PlacementConstraints

这些区域有:PlacementConstraints对象包含要用于任务的放置约束对象的列表。

每个放置约束可能具有以下属性。

Expression

可选

应用于约束的集群查询语言表达式。

类型:字符串

Type

可选

约束类型。

类型:字符串

ProxyConfiguration

这些区域有:ProxyConfiguration对象包含 App Mesh 代理的配置详细信息。

ProxyConfiguration 可能具有以下属性。

ContainerName

可选

将作为 App Mesh 代理的容器的名称。

类型:字符串

ProxyConfigurationProperties

可选

提供给容器网络接口 (CNI) 插件的网络配置参数集,以键值对形式指定。

类型:对象数组

Type

可选

代理类型。

类型:字符串

有效值APPMESH

ProxyConfigurationProperties

这些区域有:ProxyConfigurationProperties对象包含要提供给容器网络接口 (CNI) 插件的网络配置参数集。

每个条目可能具有以下属性。

Name

可选

属性的名称。

类型:字符串

Value

可选

属性的值。

类型:字符串

Volumes

这些区域有:Volumes对象列出要从其他容器挂载的数据卷。

每个数据卷可能具有以下属性。

DockerVolumeConfiguration

可选

有关 Docker 卷的信息。

类型:对象

EfsVolumeConfiguration

有关用于任务存储的 Amazon Elastic File System 文件系统的信息。

可选

类型:对象

Host

可选

有关绑定装载主机卷的信息。

类型:对象

Name

数据卷的名称。

可选

类型:字符串

DockerVolumeConfiguration

这些区域有:DockerVolumeConfiguration对象提供有关 Docker 卷的信息。

DockerVolumeConfiguration 可能具有以下属性。

Autoprovision

可选

如果 Docker 卷尚不存在,则是否自动创建 Docker 卷。

类型:Boolean

Driver

可选

要使用的 Docker 卷驱动程序。

类型:字符串

DriverOpts

可选

传递的 Docker 驱动程序所特定选项的映射。

类型:字符串映射

Labels

可选

要添加到 Docker 卷的自定义元数据。

类型:字符串映射

Scope

可选

确定其生命周期的 Docker 卷的范围。任务启动时,将自动预置范围限定为任务的 Docker 卷;而当任务停止时销毁此卷。任务停止后,共享的 Docker 卷将持续存在。

类型:字符串

有效值shared | task

EfsVolumeConfiguration

这些区域有:EfsVolumeConfiguration对象提供有关用于任务存储的 Amazon Elastic File System (Amazon EFS) 文件系统的信息。

EfsVolumeConfiguration 可能具有以下属性。

AuthorizationConfig

可选

Amazon EFS 文件系统的授权配置详细信息。

类型:对象

AuthorizationConfig.AccessPointId

可选

要使用的 Amazon EFS 访问点标识符。

类型:字符串

AuthorizationConfig.Iam

可选

挂载 Amazon EFS 文件系统时是否使用在任务定义中定义的 Amazon ECS 任务 IAM 角色。

类型:字符串

有效值DISABLED | ENABLED

FilesystemId

可选

要使用的 Amazon EFS 文件系统标识符。

类型:字符串

RootDirectory

可选

Amazon EFS 文件系统中要作为主机内的根目录挂载的目录。

类型:字符串

TransitEncryption

可选

是否对 Amazon ECS 主机和 Amazon EFS 服务器之间传输的 Amazon EFS 数据启用加密。

类型:字符串

有效值DISABLED | ENABLED

TransitEncryptionPort

可选

在 Amazon ECS 主机和 Amazon EFS 服务器之间发送加密数据时要使用的端口。

类型:Number

Host

这些区域有:Host对象提供有关绑定装载主机卷的信息。

Host 可能具有以下属性。

SourcePath

可选

向容器提供的主机容器实例上的路径。Fargate 启动类型不受支持。

类型:字符串