InUseBy で証明書の利用状況を確認する

ACM証明書を削除する前に、その証明書がCloudFrontやELBなどのリソースで使われていないかを確認する必要がある。使用中の証明書を削除しようとすると、操作自体がエラーになる。

aws acm describe-certificateInUseBy フィールドで、証明書を利用しているリソースのARN一覧を確認できる。describe-certificate の詳しい使い方は 【AWS CLI】ACM証明書の詳細情報をCLIで確認する を参照。

$ aws acm describe-certificate \
  --region us-east-1 \
  --certificate-arn arn:aws:acm:us-east-1:123456789012:certificate/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee \
  --query 'Certificate.InUseBy'
[
    "arn:aws:cloudfront::123456789012:distribution/EXAMPLE12345"
]

InUseBy が空配列であれば、その証明書はどのリソースからも参照されていないため削除できる。

[]

削除する

InUseBy が空配列であることを確認したら、aws acm delete-certificate で削除する。

$ aws acm delete-certificate \
  --region us-east-1 \
  --certificate-arn arn:aws:acm:us-east-1:123456789012:certificate/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee

使用中の証明書を削除しようとすると、ResourceInUseException が発生し削除できない。

An error occurred (ResourceInUseException) when calling the DeleteCertificate operation: Certificate arn:aws:acm:us-east-1:123456789012:certificate/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee is currently in use by CloudFront and cannot be deleted.