透過帳戶設定使用 Amazon ECS 功能 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

透過帳戶設定使用 Amazon ECS 功能

您可以前往 Amazon ECS 帳戶設定以選擇加入或退出特定功能。針對每個 AWS 區域,您可以在帳戶層級或針對特定的使用者或角色選擇加入或退出每個帳戶設定。

如果以下任何一項與您相關,則您可能會想要選擇加入或退出特定功能:

  • 使用者或角色可以為其個別帳戶選擇加入或退出特定帳戶設定。

  • 使用者或角色可以為帳戶上的所有使用者設定預設選擇加入或退出設定。

  • 根使用者或具有管理員權限的使用者,可為帳戶中的任何特定角色或使用者選擇啟用或停用設定。如果根使用者的帳戶設定發生變更,對於未選取個別帳戶設定的所有使用者和角色,將會設為預設值。

注意

聯合身分使用者會採用根使用者的帳戶設定,而且無法另外為他們設定明確的帳戶設定。

下列帳戶設定可供使用。您必須分別選擇加入或選擇退出每個帳戶設定。

資源名稱 進一步了解
containerInsights Container Insights
serviceLongArnFormat

taskLongArnFormat

containerInstanceLongArnFormat

Amazon Resource Name (ARN) 和 ID
tagResourceAuthorization 標記授權
fargateFIPSMode AWS Fargate 聯邦資訊處理標準 (FIPS-140) 合規
fargateTaskRetirementWaitPeriod AWS Fargate 任務淘汰等待時間
guardDutyActivate 執行時期監控 (Amazon GuardDuty 整合)
dualStackIPv6 雙堆疊 IPv6 VPC
awsvpcTrunking 增加 Linux 容器執行個體網路介面數量
defaultLogDriverMode 預設日誌驅動程式模式

Amazon Resource Name (ARN) 和 ID

建立 Amazon ECS 資源時,會將唯一的 Amazon Resource Name (ARN) 和資源識別符 (ID) 指派給每個資源。若您透過命令列工具或 Amazon ECS API 來使用 Amazon ECS,則特定命令會需要資源 ARN 或 ID。例如,如果您使用 stop-task AWS CLI 命令來停止任務,您必須在命令中指定任務 ARN 或 ID。

Amazon ECS 針對 Amazon ECS 服務、任務及容器執行個體,推出了新的 Amazon Resource Name (ARN) 與資源 ID 格式。每個資源類型的選擇加入狀態會決定資源使用的 Amazon Resource Name (ARN) 格式。您必須選擇加入新的 ARN 格式,以便使用適合該資源類型的功能,例如資源標記。

您可以在每個區域的基礎上,選擇加入和退出新的 Amazon Resource Name (ARN) 和資源 ID 格式。目前,預設會選擇加入建立的所有新帳戶。

您可以隨時選擇加入或退出新的 Amazon Resource Name (ARN) 和資源 ID 格式。您建立的所有新資源都會使用新格式。

注意

資源 ID 在建立之後即不會變更。因此,選擇加入或退出新格式並不會影響現有的資源 ID。

下列章節說明 ARN 和資源 ID 格式如何改變。有關轉換至新格式的詳細資訊,請參閱 Amazon Elastic Container Service 常見問答集

Amazon Resource Name (ARN) 格式

部分資源具有使用者易記名稱 (例如,名為 production 的服務)。在其他情況下,您必須使用 Amazon Resource Name (ARN) 格式來指定資源。Amazon ECS 任務、服務和容器執行個體的新 ARN 格式包含叢集名稱。如需選擇加入新 ARN 格式的資訊,請參閱 修改 Amazon ECS 帳戶設定

下表顯示每個資源類型的當前格式和新格式。

Resource Type (資源類型) ARN
容器執行個體

當前:arn:aws:ecs:region:aws_account_id:container-instance/container-instance-id

新:arn:aws:ecs:region:aws_account_id:container-instance/cluster-name/container-instance-id

Amazon ECS 服務

當前:arn:aws:ecs:region:aws_account_id:service/service-name

新:arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

Amazon ECS 任務

當前:arn:aws:ecs:region:aws_account_id:task/task-id

新:arn:aws:ecs:region:aws_account_id:task/cluster-name/task-id

資源 ID 長度

資源 ID 的形式採用字母和數字的唯一組合。新資源 ID 格式包括 Amazon ECS 任務和容器執行個體的較短 ID。當前資源 ID 格式長度為 36 個字元。新 ID 採用 32 個字元的格式,且不包含任何連字號。如需選擇加入新資源 ID 格式的資訊,請參閱 修改 Amazon ECS 帳戶設定

預設值為 enabled

只有在加入後啟動的資源才會收到新的 ARN 和資源 ID 格式。所有現有的資源不會受到影響。若要讓 Amazon ECS 服務和任務轉換至新的 ARN 和資源 ID 格式,您必須重新建立服務或任務。若要將容器執行個體轉換至新 ARN 和資源 ID 格式,必須排空容器執行個體,且必須啟動新的容器執行個體,並使其向叢集註冊。

注意

只有在 Amazon ECS 服務建立時間為或晚於 2018 年 11 月 16 日,而且建立該服務的使用者已決定為任務加入新格式時,該服務所啟動的任務才會收到新的 ARN 和資源 ID 格式。

ARN 和資源 ID 格式時間表

Amazon ECS 資源的新 Amazon Resource Name (ARN) 和資源 ID 格式的選擇加入和退出期間截止時間為 2021 年 4 月 1 日。根據預設,所有帳戶都會選擇加入新格式。所有建立的新資源都會收到新格式,且您無法再選擇退出。

Container Insights

2024 年 12 月 2 日, AWS 發行 Container Insights 並增強了 Amazon ECS 的可觀測性。此版本的增強可觀測性支援使用 Fargate Amazon ECS 受管執行個體和 EC2 的 Amazon ECS 叢集。在 Amazon ECS 上設定了具有增強可觀測性的 Container Insights 後,Container Insights 會自動收集從叢集層級到容器層級的詳細基礎結構遙測資料,並在顯示各種指標和維度的儀表板中顯示您的資料。然後,您可以在 Container Insights 主控台上使用這些out-of-the-box儀表板,以進一步了解您的容器運作狀態和效能,並透過識別異常狀況更快速地解決問題。

建議使用具有增強可觀測性的 Container Insights 而非普通的 Container Insight,因為前者能提供容器環境的詳細可見性,縮短問題解決的平均時間。如需詳細資訊,請參閱 Amazon CloudWatch User Guide 中的 Amazon ECS Container Insights with enhanced observability metrics

containerInsights 帳戶設定預設為 disabled

具有增強可觀測性的 Container Insights

使用以下命令開啟具有增強可觀測性 Container Insights。

containerInsights 帳戶設定設為 enhanced

aws ecs put-account-setting --name containerInsights --value enhanced

範例輸出

{ "setting": { "name": "containerInsights", "value": "enhanced", "principalArn": "arn:aws:iam::123456789012:johndoe", "type": user } }

設定此帳戶設定後,所有新叢集會自動使用具有增強可觀測性的 Container Insights。使用 update-cluster-settings 命令將具有增強可觀測性的 Container Insights 新增至現有叢集,或將叢集從普通的 Container Insights 升級至具有增強可觀測性的 Container Insights。

aws ecs update-cluster-settings --cluster cluster-name --settings name=containerInsights,value=enhanced

您也可以使用主控台來設定具有增強可觀測性的 Container Insights。如需詳細資訊,請參閱修改 Amazon ECS 帳戶設定

Container Insights

當您將 containerInsights 帳戶設定設為 enabled 時,所有新叢集都會預設啟用 Container Insights。您可以使用 update-cluster-settings 來修改現有叢集。

若要使用 Container Insights,請將 containerInsights 帳戶設定設為 enabled。使用下列命令來啟用 Container Insights。

aws ecs put-account-setting --name containerInsights --value enabled

範例輸出

{ "setting": { "name": "containerInsights", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:johndoe", "type": user } }

當您將 containerInsights 帳戶設定設為 enabled 時,所有新叢集都會預設啟用 Container Insights。使用 update-cluster-settings 命令,將 Container Insights 新增至現有叢集。

aws ecs update-cluster-settings --cluster cluster-name --settings name=containerInsights,value=enabled

您也可以使用主控台來設定 Container Insights。如需詳細資訊,請參閱修改 Amazon ECS 帳戶設定

AWS Fargate 聯邦資訊處理標準 (FIPS-140) 合規

Fargate 支援聯邦資訊處理標準 (FIPS-140),該標準具體說明了保護敏感資訊的加密模組的安全要求。這是目前的美國和加拿大政府標準,且適用於需要符合聯邦資訊安全管理法案 (FISMA) 或聯邦風險和授權管理計劃 (FedRAMP) 的系統。

資源名稱為 fargateFIPSMode

預設值為 disabled

您必須在 Fargate 上開啟聯邦資訊處理標準 (FIPS-140) 法規遵循。如需詳細資訊,請參閱AWS Fargate 聯邦資訊處理標準 (FIPS-140)

重要

只能使用 Amazon ECS API 或 AWS CLI變更 fargateFIPSMode 帳戶設定。如需詳細資訊,請參閱修改 Amazon ECS 帳戶設定

執行 put-account-setting-default 並將 fargateFIPSMode 選項設定為 enabled。如需詳細資訊,請參閱 Amazon Elastic Container Service API 參考中的 《put-account-setting-default》

  • 您可以透過如下命令來啟用 FIPS-140 合規。

    aws ecs put-account-setting-default --name fargateFIPSMode --value enabled

    範例輸出

    { "setting": { "name": "fargateFIPSMode", "value": "enabled", "principalArn": "arn:aws:iam::123456789012:root", "type": user } }

您可以執行 list-account-settings 以檢視目前的 FIPS-140 法規遵循狀態。使用 effective-settings 選項來檢視帳戶層級設定。

aws ecs list-account-settings --effective-settings

標記授權

Amazon ECS 正在為資源建立引入標記授權。使用者必須擁有建立資源的動作標記許可,例如 ecsCreateCluster。當您建立資源並指定該資源的標籤時, AWS 會執行額外的授權,以驗證是否有建立標籤的許可。因此,您必須授予使用 ecs:TagResource 動作的明確許可。如需詳細資訊,請參閱在建立時授予標記資源的許可

若要選擇加入標記授權,請執行 put-account-setting-default,並將 tagResourceAuthorization 選項設為 on。如需詳細資訊,請參閱 Amazon Elastic Container Service API 參考中的 《put-account-setting-default》。您可以執行 list-account-settings 以檢視目前的標記授權狀態。

  • 您可以透過如下命令來啟用標記授權。

    aws ecs put-account-setting-default --name tagResourceAuthorization --value on --region region

    範例輸出

    { "setting": { "name": "tagResourceAuthorization", "value": "on", "principalArn": "arn:aws:iam::123456789012:root", "type": user } }

啟用標記授權後,您必須設定適當許可,允許使用者在建立時標記資源。如需詳細資訊,請參閱在建立時授予標記資源的許可

您可以執行 list-account-settings 以檢視目前的標記授權狀態。使用 effective-settings 選項來檢視帳戶層級設定。

aws ecs list-account-settings --effective-settings

標記授權時間表

您可以透過執行 list-account-settings 檢視 tagResourceAuthorization 值來確認標記授權是否處於作用中狀態。當值為 on 時,表示正在使用標記授權。如需詳細資訊,請參閱 Amazon Elastic Container Service API 參考中的 《list-account-settings》。

以下是與標記授權相關的重要日期。

  • 2023 年 4 月 18 日 – 引入標記授權。所有新帳戶和現有帳戶均須選擇加入使用該功能。您可以選擇開始使用標記授權。選擇加入後,您必須授予適當的許可。

  • 2024 年 2 月 9 日至 2024 年 3 月 6 日 – 依預設,所有新帳戶與未受影響的現有帳戶都具有標記授權。您可以啟用或停用 tagResourceAuthorization 帳戶設定來驗證 IAM 政策。

    AWS 已通知受影響的帳戶。

    若要停用此功能,請執行 put-account-setting-default,將 tagResourceAuthorization 選項設定為 off

  • 2024 年 3 月 7 日 – 如果已啟用標記授權,則無法再停用帳戶設定。

    建議在此日期之前完成 IAM 政策測試。

  • 2024 年 3 月 29 日 – 所有帳戶都會使用標記授權。Amazon ECS 主控台或 AWS CLI將不再提供帳戶層級設定。

AWS Fargate 任務淘汰等待時間

AWS 當您在標記為淘汰的平台版本修訂版上執行 Fargate 任務時, 會傳送通知。如需詳細資訊,請參閱Amazon ECS 上 AWS Fargate 的任務淘汰和維護

AWS 負責修補和維護 AWS Fargate 的基礎基礎設施。當 AWS 判斷在 Fargate 上託管的 Amazon ECS 任務需要安全或基礎設施更新時,需要停止任務並啟動新任務來取代它們。您可以設定任務淘汰以進行修補之前的等待期。您可以選擇立即淘汰任務,等待 7 個日曆日,或等待 14 個日曆日。

此設定位於帳戶層級。

您可以設定 Fargate 開始任務淘汰的時間。對於需要立即套用更新的工作負載,請選擇立即設定 (0)。當您需要更多控制項時,例如當任務只能在特定時段中停止時,請設定 7 日 (7) 或 14 日 (14) 選項。

我們建議您選擇較短的等待期,以便更快獲得更新的平台版本修訂版。

透過以根使用者或管理使用者的身分執行 put-account-setting-defaultput-account-setting 來設定等待期間。對 name 使用 fargateTaskRetirementWaitPeriod 選項,並將 value 選項設定為以下值之一:

  • 0 - AWS 傳送通知,並立即開始淘汰受影響的任務。

  • 7 - AWS 傳送通知,並等待 7 個日曆天,再開始淘汰受影響的任務。

  • 14 - AWS 傳送通知,並等待 14 個日曆日,然後再開始淘汰受影響的任務。

預設值為 7 天。

如需詳細資訊,請參閱《Amazon Elastic Container Service API 參考》中的 put-account-setting-defaultput-account-setting

您可以執行如下命令,將等待期間設定為 14 日。

aws ecs put-account-setting-default --name fargateTaskRetirementWaitPeriod --value 14

範例輸出

{ "setting": { "name": "fargateTaskRetirementWaitPeriod", "value": "14", "principalArn": "arn:aws:iam::123456789012:root", "type: user" } }

您可以執行 list-account-settings 以檢視目前的 Fargate 任務淘汰等待時間。設定 effective-settings 選項。

aws ecs list-account-settings --effective-settings

增加 Linux 容器執行個體網路介面數量

每個使用 awsvpc 網路模式的 Amazon ECS 任務都會收到專用的彈性網路介面 (ENI),該介面會連接至託管此任務的容器執行個體。Amazon EC2 執行個體可連接的網路介面數量有預設限制,主要網路介面計算在內。例如,根據預設,c5.large 執行個體最多可連接三個 ENI。執行個體的主要網路界面計算在內,所以您可以再連接兩個 ENI 到執行個體。因為每個使用 awsvpc 網路模式的任務都需要 ENI,所以通常只能對此執行個體類型執行兩個這類任務。

Amazon ECS 支援使用受支援的 Amazon EC2 執行個體類型,以更高的 ENI 密度來啟動容器執行個體。當您使用這些執行個體類型並啟用 awsvpcTrunking 帳戶設定時,新啟動的容器執行個體會提供額外的 ENI。此組態可讓您在每個容器執行個體中安排更多任務。

例如,啟用 awsvpcTrunkingc5.large 執行個體,其 ENI 限制會增加至 12 個。容器執行個體會有主要網路介面,而 Amazon ECS 會建立「幹線」網路介面,並將它連接到容器執行個體。因此,此組態可讓您在容器執行個體中啟動十項任務,而不是目前的兩項任務。

執行時期監控 (Amazon GuardDuty 整合)

執行期監控是一種智慧型威脅偵測服務,可透過持續監控 AWS 日誌和聯網活動來識別惡意或未經授權的行為,來保護在 Fargate 和 EC2 容器執行個體上執行的工作負載。

guardDutyActivate 參數在 Amazon ECS 中為唯讀,會指明 Amazon ECS 帳戶中安全管理員是否已啟用執行時期監控功能。GuardDuty 會代為控制此帳戶設定。如需詳細資訊,請參閱透過執行時期監控保護 Amazon ECS 工作負載

您可以執行 list-account-settings 來檢視目前的 GuardDuty 整合設定。

aws ecs list-account-settings

範例輸出

{ "setting": { "name": "guardDutyActivate", "value": "on", "principalArn": "arn:aws:iam::123456789012:doej", "type": aws-managed" } }

雙堆疊 IPv6 VPC

除了主要私有 IPv4 地址之外,Amazon ECS 還支援提供具有 IPv6 地址的任務。

若要讓任務接收 IPv6 地址,任務必須使用 awsvpc 網路模式,必須在針對雙堆疊模式設定的 VPC 中啟動,且必須啟用 dualStackIPv6 帳戶設定。如需有關其他需求的詳細資訊,請參閱在雙堆疊模式下使用 VPC (針對 EC2 容量)、在雙堆疊模式下使用 VPC (針對 Amazon ECS 受管執行個體容量) 以及在雙堆疊模式下使用 VPC (針對 Fargate 容量)。

重要

只能使用 Amazon ECS API 或 AWS CLI變更 dualStackIPv6 帳戶設定。如需詳細資訊,請參閱修改 Amazon ECS 帳戶設定

如果您有一個正在執行的任務,它在 2020 年 10 月 1 日和 2020 年 11 月 2 日之間的已啟用 IPv6 的子網路中使用 awsvpc 網路模式,則正執行該任務的區域中的預設 dualStackIPv6 帳戶設定為 disabled。如果不符合該條件,則該區域中的預設 dualStackIPv6 設定為 enabled

預設值為 disabled

預設日誌驅動程式模式

Amazon ECS 支援設定從容器到所選日誌驅動程式的日誌訊息預設傳送模式。當從容器到日誌驅動程式的日誌流程中斷時,傳送模式會影響應用程式穩定性。

defaultLogDriverMode 設定支援兩個值:blockingnon-blocking。如需有關這些傳送模式的詳細資訊,請參閱 Amazon Elastic Container Service API Reference 中的 LogConfiguration

如果未在容器定義的 logConfiguration 中指定傳送模式,則會將您使用此帳戶設定指定的模式用作預設傳送模式。

預設傳送模式為 non-blocking

注意

自 2025 年 6 月 25 日起,Amazon ECS 將預設日誌驅動程式模式從 blocking 變更為 non-blocking,優先保障任務可用性而非日誌完整性。若要在此變更後繼續使用 blocking 模式,請執行下列任一操作:

  • 將容器定義 logConfiguration 中的 mode 選項設定為 blocking

  • defaultLogDriverMode 帳戶設定設為 blocking

要將預設日誌驅動程式模式設定為 blocking,您可以執行如下命令。

aws ecs put-account-setting-default --name defaultLogDriverMode --value "blocking"