マルチパーティ承認ポータルへのアクセス時に Access Denied が発生するようになった
いわさです。
先日、AWS Organizations のマルチパーティ承認機能を使っていたのですが、原因不明の Access Denied が発生するようになりました。

ログも出ずに原因がわからずに色々とトライ&エラーでトラブルシューティングしていたのですが IAM Identity Center の設定変更したところ解決したのでその様子を紹介します。
IAM Identity Center アプリケーションから見てもよくわからない
このマルチパーティ承認機能はどうやら IAM Identity Center 上は個別のユーザー割り当てがされずにディレクトリユーザーであればすべて表示され、マルチパーティ承認ポータルへアクセスする際にシングルサインオンされる仕組みみたいです。
そのためか、アプリケーション上はユーザー割り当てがされていませんでした。

カスタマーマネージドキーが原因だった
元々以下のアップデートを検証する際に IAM Identity Center の設定を色々と変更していました。
その変更後からマルチパーティ承認ポータルへアクセスができなくなりました。
そこで設定を色々と戻すことに。
外部 IdP 設定を Microsoft Entra ID から IAM Identity Center ディレクトリに変更しましたが、解決しませんでした。

どうやらアイデンティティソースは関係ないみたいです。
つづいて、インスタンス設定の暗号化キーにマルチリージョンキーのカスタマーマネージドキーを使用していたので、こちらを AWS マネージドキーに変更しました。

こちらのキーを戻したところ、マルチパーティ承認ポータルにアクセスすることが出来ました。

どうやら KMS キーに原因があったみたいです。
ちなみに次のようにシングルリージョンの KMS キーを設定した場合でもマルチパーティ承認機能へアクセスが出来ませんでした。

マルチパーティ承認機能でカスタマーマネージドキーを使う
一番簡単な対処方法はカスタマーマネージドキーを使わずに AWS マネージドキーを使う方法です。切り替えるだけですぐに使えるようになります。
では、マルチパーティ承認機能でカスタマーマネージドキーを使うことは出来ないのでしょうか。
以下のドキュメントに、AWS マネージドアプリケーションごとにカスタマーマネージドキーが構成されている IAM Identity Center で利用できるかどうかまとめられています。
Amazon Monitron や AWS App Studio など一部のサービスではカスタマーマネージドキーがサポートされていませんが、マルチパーティ承認はサポートされていそうです。

セキュリティ上問題あるのでこの設定は良くないのですが、例えば次のようにキーポリシーで制限を行わない場合、カスタマーマネージドキーが設定されていてもマルチパーティ承認ポータルにアクセスすることが出来ました。
{
"Version": "2012-10-17",
"Id": "key-consolepolicy-3",
"Statement": [
{
"Sid": "hogehoge",
"Effect": "Allow",
"Principal": "*",
"Action": "kms:*",
"Resource": "*"
}
]
}

ということで今回の根本的原因はキーポリシーにあることがわかりました。
AWS マネージドアプリケーションのために KMS キーにどういったポリシーを指定すべきか、以下に記載がされていますのでこちらを参考にキーポリシーの調整をしてみてください。
さいごに
本日はマルチパーティ承認ポータルへのアクセス時に Access Denied が発生するようになったので色々と試してみました。
必ずし同じ方法で解決できるかわからないですが、もしマルチパーティ承認ポータルへのアクセス時にどのユーザーでも Access Denied が発生するようになってしまった場合の見直しポイントとして参考にしてください。






