現象
AWSにサーバー証明書をアップロードしようとしたとき、以下のようなエラーメッセージが表示されました。
cannot exceed quota for servercertificatesPerAccount: 20
AWSにアップロードできるサーバー証明書は初期ではアカウントあたり20までに制限されており、その制限を超えることはできません。
対処方法
対処方法としては以下の2つが挙げられます。
しかし、根本的にはAWS Certificate Managerを活用し、証明書をアップロードしないほうがよいです。
不要なサーバー証明書の削除
AWS-CLIを使う場合には以下のように実行して不要なサーバー証明書を削除します。
AWS-CLIは、後述のCloudShellを使うことでウェブブラウザだけでコマンドを発行できます。
aws iam delete-server-certificate --server-certificate-name <サーバー証明書の名称>
上のコマンドで必要な証明書の名称はアップロードしている証明書の一覧から探すと良いでしょう。
以下のコマンドで表示されることができます。
aws iam list-server-certificates
参照:IAM でのサーバー証明書の管理 - AWS Identity and Access Management
エラーが発生するとき
以前コマンドを実行したとき、以下のようなエラーが発生しました。
An error occurred (DeleteConflict) occurred when calling the DeleteServerCertificate operation: ...<このあとはメモしそこねた>...
どうやら、利用中の証明書を削除しようとしたときに発生するようです。
証明書を利用しているサービスを確認しましょう。
CloudShellを使ってWebブラウザだけでAWS-CLIを使う
AWS-CLIをローカルPC等にインストールせずともWebブラウザがあればコマンドを実行できるAWS CloudShellが便利でした。
2020年12月にリリースされたサービスです。
AWSコンソールからCloudShellを選び、環境ができたらすぐに上記のコマンドが使えます。
詳しくは下記を参照してください。
- AWS CloudShell とは?
- AWS CloudShell – AWS リソースへのコマンドラインアクセス | Amazon Web Services ブログ
- 待望の新サービス AWS CloudShell がリリースされました! #reinvent | Developers.IO
サーバー証明書の制限を引き上げる
方法は下記を参照してください。
すぐには適用されないようなので、すぐに対応が必要な場合にはだめです。