

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 用に確立するセッション ( で始まるソース ID) のみを許可します`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:DomainNames` や など`acm:RequestCertificate`、 でサポートされているものと同じ条件キーを使用して発行を制限できます`acm:KeyAlgorithm`。詳細については、「[ACM での条件キーの使用](acm-conditions.md)」を参照してください。

**ロールセッション名とソース ID**

ACM がロールを引き受けると、CloudTrail ログに表示されるロールセッション名とソース ID が設定され、 `sts:RoleSessionName` および `sts:SourceIdentity`条件キーで参照できます。
+ **証明書の発行および取り消し時** – ロールセッション名は `acme-request-{{request-id}}`で、ソース ID は です`acm-acme-{{acme-account-id}}`。
+ **外部アカウントバインディングの作成時にロールを検証する場合** – ロールセッション名は `acme-verification`で、ソース ID は です`acm-acme-verification`。

両方のソース ID は で始まるため`acm-acme-`、信頼ポリシー`sts:SourceIdentity`の条件では両方が許可されます。ACM は、、、 `acme-account-url`などの引き受けたロールセッションにもセッションタグ`acme-endpoint-arn`をアタッチします`acme-operation`。

## SCP の互換性
<a name="security-iam-acme-scp"></a>

ACME サービスは、引き受けたロールを使用して標準の ACM API コールを行うため、 AWS 組織サービスコントロールポリシー (SCPs) は証明書の発行時に適用されます。SCP がアカウントの を拒否すると、ACME 証明書の発行も失敗`acm:RequestCertificate`します。これにより、ACME 発行の証明書には、ACM API から直接発行される証明書と同じガバナンスコントロールが提供されます。