Posted at

AWS KMSでkey policyがjsonしか表示されなくなったケースとその原因・解決


なにが起きたか : KMSのkeyのuserがwebUIで追加できなくなった

AWSのKMSのweb consoleでは、正常時には下記のようにweb UIでkey adminとkey userを変更することができます。

また、直接policyのjsonを変更することもできます。

Screenshot from 2019-08-31 23-12-18.png

ところが、ある状況になると下記のようにweb consoleが表示されなくなることがあります。

Screenshot from 2019-08-31 23-15-13.png


なぜ発生したか : key userからIAM userを外す前にIAM userを消してしまった

今回遭遇したケースでは、KMSのkey adminもしくはkey userに含まれているIAM userが削除されたことによって発生しました。

下記の手順で再現することができます。


  1. IAM Userを作成

  2. KMSでkeyを作成

  3. 作成したIAM Userをそのkey userに追加

  4. IAM Userを削除 (key userからは消し忘れ)

  5. keyのpolicyに存在しないuserが含まれているため、policyがinvalidとなる

  6. KMSの該当keyのpolicyがinvalidなため、web consoleが表示されなくなる


どうやって直すか : key policyのinvalidな部分を修正する

policyのjsonが不正なものになっているため、webUIが表示されない状態になっています。

今回の場合、policyのjsonのうち下記のようなIAMのarnが設定されている箇所を探して修正します。

Screenshot from 2019-08-31 23-22-08.png

ここでは削除されたIAM Userの部分は arn ではなく UserId (AIDAR3M2BJ6DSEBHF2EAM のような)で表示されています。これはもう存在しないuserなので、単にjsonから削除します。

すべて修正するとpolicyの保存に成功し、再度keyの画面を確認するとwebUIが復活していることを確認できます。