

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

# ACME 憑證自動化的 IAM
<a name="security-iam-acme"></a>

ACME 憑證自動化使用 IAM 角色來授權憑證發行和撤銷。本節說明 ACME 的許可模型。

## PKI 管理員許可
<a name="security-iam-acme-admin"></a>

建立和管理 ACME 資源的 PKI 管理員需要下列許可：

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "acm:CreateAcmeEndpoint",
                "acm:DescribeAcmeEndpoint",
                "acm:ListAcmeEndpoints",
                "acm:UpdateAcmeEndpoint",
                "acm:DeleteAcmeEndpoint",
                "acm:CreateAcmeExternalAccountBinding",
                "acm:DescribeAcmeExternalAccountBinding",
                "acm:ListAcmeExternalAccountBindings",
                "acm:GetAcmeExternalAccountBindingCredentials",
                "acm:RevokeAcmeExternalAccountBinding",
                "acm:DeleteAcmeExternalAccountBinding",
                "acm:CreateAcmeDomainValidation",
                "acm:DescribeAcmeDomainValidation",
                "acm:ListAcmeDomainValidations",
                "acm:UpdateAcmeDomainValidation",
                "acm:DeleteAcmeDomainValidation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::{{account-id}}:role/{{AcmeIssuanceRole}}",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "acm-acme.amazonaws.com"
                }
            }
        }
    ]
}
```

## EAB 角色需求
<a name="security-iam-acme-eab-role"></a>

每個外部帳戶繫結都與 IAM 角色相關聯。ACM 使用此角色為使用繫結憑證進行身分驗證的 ACME 用戶端授權憑證發行和撤銷。

**信任政策**

角色必須信任 ACME 服務委託人，授予 `sts:AssumeRole`、 `sts:TagSession`和 `sts:SetSourceIdentity`。下列信任政策也會在 上使用條件`sts:SourceIdentity`，僅允許 ACM 為 ACME 建立的工作階段 （以 開頭的來源身分`acm-acme-`)：

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "acm-acme.amazonaws.com"
            },
            "Action": [
                "sts:AssumeRole",
                "sts:TagSession",
                "sts:SetSourceIdentity"
            ],
            "Condition": {
                "StringLikeIfExists": {
                    "sts:SourceIdentity": "acm-acme-*"
                }
            }
        }
    ]
}
```

**許可政策**

角色需要您想要允許之憑證操作的許可。適用於直接 API 呼叫的相同 ACM 動作和條件索引鍵會套用在此：

```
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "acm:RequestCertificate",
            "acm:RevokeCertificate"
        ],
        "Resource": "*"
    }]
}
```

您可以使用 支援的相同條件金鑰來限制發行`acm:RequestCertificate`，例如 `acm:DomainNames`或 `acm:KeyAlgorithm`。如需詳細資訊，請參閱[搭配 ACM 使用條件索引鍵](acm-conditions.md)。

**角色工作階段名稱和來源身分**

當 ACM 擔任角色時，它會設定在 CloudTrail 日誌中顯示的角色工作階段名稱和來源身分，您可以使用 `sts:RoleSessionName`和 `sts:SourceIdentity`條件索引鍵來參考：
+ **在憑證發行和撤銷**時 – 角色工作階段名稱為 `acme-request-{{request-id}}`，而來源身分為 `acm-acme-{{acme-account-id}}`。
+ **在外部帳戶繫結建立時驗證角色** – 角色工作階段名稱為 ，`acme-verification`而來源身分為 `acm-acme-verification`。

這兩個來源身分都以 開頭`acm-acme-`，因此信任政策中的 `sts:SourceIdentity`條件允許兩者。ACM 也會在擔任角色工作階段上連接工作階段標籤，包括 `acme-endpoint-arn`、 `acme-account-url`和 `acme-operation`。

## SCP 相容性
<a name="security-iam-acme-scp"></a>

由於 ACME 服務使用擔任的角色進行標準 ACM API 呼叫， AWS 因此組織服務控制政策 (SCPs) 會在憑證發行時強制執行。如果 SCP 拒絕`acm:RequestCertificate`帳戶，ACME 憑證發行也會失敗。這可為 ACME 發行的憑證提供與直接透過 ACM API 發行的憑證相同的控管控制。