Amazon ECS 的 IAM 最佳做法 - Amazon Elastic Container Service

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

Amazon ECS 的 IAM 最佳做法

您可以使用 AWS Identity and Access Management (IAM) 透過基於規則的政策來管理和控制對 AWS 服務和資源的存取,以進行身份驗證和授權。更具體地說,透過此服務,您可以使用套用至使用者、群組或角色的原則來控制對 AWS 資源的存取。在這三個使用者中,使用者是可以對您的資源進行存取的帳戶。而且,IAM 角色是一組可以由經驗證身份擔任操作的許可,該身份與 IAM 以外的特定身份沒有關聯。如需詳細資訊,請參閱 Amazon ECS 存取管理概觀:許可和政策

遵循最低權限存取的政策

建立範圍為允許使用者執行其指定工作的政策。例如,如果開發人員需要定期停止任務,請建立僅允許該特定動作的政策。下列範例僅允許使用者停止屬於具特定 Amazon Resource Name (ARN) 叢集上特定 task_family 的任務。條件中參考 ARN 也是使用資源層級許可的範例。您可以使用資源層級許可來指定要套用動作的資源。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:StopTask" ], "Condition": { "ArnEquals": { "ecs:cluster": "arn:aws:ecs:region:account_id:cluster/cluster_name" } }, "Resource": [ "arn:aws:ecs:region:account_id:task-definition/task_family:*" ] } ] }

讓叢集資源做為管理邊界

範圍太窄的政策可能會造成角色擴散,並增加系統管理額外負荷。不要建立範圍僅限於特定任務或服務的角色,而是建立範圍為叢集的角色,並使用叢集做為主要管理界限。

建立自動化管道以將最終使用者與 API 隔離

您可以透過建立自動封裝應用程式並將應用程式部署到 Amazon ECS 叢集的管道來限制使用者可以使用的動作。這可以有效地將建立、更新和刪除任務的工作委派給管道。如需詳細資訊,請參閱AWS CodePipeline 使用者指南 CodePipeline中的教學課程:Amazon ECS 標準部署

針對新增的安全層使用政策條件

當您需要新增的安全層時,請在政策中新增條件。如果您正在執行特權操作或需要限制可針對特定資源執行的一組動作時,這種做法非常有用。刪除叢集時,下列範例政策需要多重要素驗證。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DeleteCluster" ], "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "true" } }, "Resource": ["*"] } ] }

套用至服務的標籤會傳播至屬於該服務一部分的所有任務。因此,您可以使用特定標籤建立範圍為 Amazon ECS 資源的角色。在下列政策中,IAM 主體會啟動和停止所有工作,其標籤鍵為,Department且標籤值為。Accounting

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:StartTask", "ecs:StopTask", "ecs:RunTask" ], "Resource": "arn:aws:ecs:*", "Condition": { "StringEquals": {"ecs:ResourceTag/Department": "Accounting"} } } ] }

定期稽核對 API 的存取

使用者可能會變更角色。變更角色之後,先前授予他們的許可可能不再適用。確保您稽核有權存取 Amazon ECS API 的人員,以及該存取權是否仍然被授權。考慮將 IAM 與使用者生命週期管理解決方案整合,該解決方案會在使用者離開組織時自動撤銷存取。如需詳細資訊,請參閱《AWS Identity and Access Management 使用指南》中的AWS 安全性稽核準則