

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

# Amazon ECS 的 IAM 最佳實務
<a name="security-iam-bestpractices"></a>

您可以使用 AWS Identity and Access Management (IAM) 透過以規則為基礎的政策來管理和控制對 AWS 服務和資源的存取，以用於身分驗證和授權目的。更具體地說，透過此服務，您可以使用套用至使用者、群組或角色的政策來控制對 AWS 資源的存取。在這三個使用者中，使用者是可以對您的資源進行存取的帳戶。而且，IAM 角色是一組可以由經驗證身份擔任操作的許可，該身份與 IAM 以外的特定身份沒有關聯。如需詳細資訊，請參閱 [Amazon ECS overview of access management: Permissions and policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html)。

## 遵循最低權限存取的政策
<a name="security-iam-recommendations-leastpriv"></a>

建立範圍為允許使用者執行其指定工作的政策。例如，如果開發人員需要定期停止任務，請建立僅允許該特定動作的政策。下列範例僅允許使用者停止屬於具特定 Amazon Resource Name (ARN) 叢集上特定 `task_family` 的任務。條件中參考 ARN 也是使用資源層級許可的範例。您可以使用資源層級許可來指定要套用動作的資源。如需詳細資訊，請參閱 [Amazon ECS 的政策資源](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-resources)。

## 讓叢集資源作為管理界限
<a name="security-iam-recommendations-clusterboundary"></a>

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

## 透過自動化管道，隔離最終使用者與 API
<a name="security-iam-recommendations-usingpipelines"></a>

您可以透過建立自動封裝應用程式並將應用程式部署到 Amazon ECS 叢集的管道來限制使用者可以使用的動作。這可以有效地將建立、更新和刪除任務的工作委派給管道。如需詳細資訊，請參閱*《AWS CodePipeline 使用者指南》*中的[教學課程：具 CodePipeline 的 Amazon ECS 標準部署](https://docs.aws.amazon.com/codepipeline/latest/userguide/ecs-cd-pipeline.html)。

## 針對新增的安全層使用政策條件
<a name="security-iam-recommendations-policyconditions"></a>

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

------
#### [ JSON ]

****  

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

------

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

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:StartTask",
                "ecs:StopTask",
                "ecs:RunTask"
            ],
            "Resource": "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster",
            "Condition": {
                "StringEquals": {"ecs:ResourceTag/Department": "Accounting"}
            }
        }
    ]
}
```

------

## 定期稽核對 API 的存取
<a name="security-iam-recommendations-audit"></a>

使用者可能會變更角色。變更角色之後，先前授予他們的許可可能不再適用。確保您稽核有權存取 Amazon ECS API 的人員，以及該存取權是否仍然被授權。考慮將 IAM 與使用者生命週期管理解決方案整合，該解決方案會在使用者離開組織時自動撤銷存取。如需詳細資訊，請參閱 *AWS Identity and Access Management User Guide* 中的 [AWS security audit guidelines](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-audit-guide.html)。