Amazon CodeWhisperer のセットアップ中に「Error while fetching data」が発生する条件を調べてみた

2024.03.19

いわさです。

Amazon CodeWhisperer は AWS が提供する AI によるコード生成サービスです。
CodeWhisperer のライセンスタイプにはプロフェッショナル版という有料のものが提供されており、IAM Identity Center 上でユーザー管理を行い、CodeWhisperer と統合することで利用することが出来ます。

先日その機能をセットアップされていた方から、次のようなエラーメッセージが表示されたと連絡を頂きましたのでどういう時にこのエラーメッセージが発生するのかを調べてみました。

結論から先に書きますと、IAM Identity Center が有効化されていない Organizations に所属しているメンバーアカウントで Amazon CodeWhisperer のセットアップを開始しようとすると発生します。

検証内容

IAM Identity Center の組織インスタンスが有効化されている組織

まずは IAM Identity Center の組織インスタンスが有効化されている組織の、管理アカウントで CodeWhisperer のセットアップを試みたところ、次のようにエラーが発生しませんでした。

その組織で管理者権限を委任されていないメンバーアカウントで CodeWhisperer のセットアップを試みたところ、こちらもエラーは発生しませんでした。

上記の組織にはまだメンバーを作成していません。
また、CodeWhisperer は バージニア北部リージョンでのみ有効化が可能ですが、IAM Identity Center インスタンスは東京リージョンで作成を行っています。

そのため、メンバーやグループの有無や、IAM Identity Center のリージョンは、本エラーメッセージとは関係なさそうです。

ただし以下のドキュメントによると、CodeWhisperer との互換性のために IAM Identity Center はオプトインリージョンでセットアップすることは出来ないと言及されています。

試しにオプトインリージョン(ミラノ)で IAM Identity Center を有効化し、CodeWhisperer をセットアップしようとしたところ、エラーが発生しセットアップ画面までたどり着くことが出来ませんでした。

IAM Identity Center の組織インスタンスが有効化されていない

続いて IAM Identity Center がまだ有効化されていない組織でも試してみました。
管理アカウントから CodeWhisperer のセットアップを試みようとしたところ次のメッセージが表示されました。

先に IAM Identity Center を有効化しなさいというエラーが発生しますね。
管理アカウントの場合はこのメッセージから IAM Identity Center が有効化されていないとすぐにわかります。

続いてメンバーアカウントです。
こちらは冒頭紹介したような「Error while fetching data」が大量に発生しました。

アカウントインスタンスを有効化した場合

また、この IAM Identity Center の組織アカウントが有効化されていない環境で、IAM Identity Center のメンバーアカウントを有効化して CodeWhisperer セットアップを試してみました。

結果としては同じようにエラーが発生しました。

本日時点では IAM Identity Center のアカウントインスタンスでは CodeWhisperer をサポートしていないので制約どおりですね。

IAM Identity Center の組織インスタンスが有効化されているが、ポリシーで拒否されている場合

CodeWhisperer のプロファイル作成には権限割り当てが必要で、次のアクションを許可する必要があります。

{
	"Version": "2012-10-17",
	"Statement": [
	    {
		"Sid": "Statement1",
		"Effect": "Allow",
		"Action": [
			"sso:CreateManagedApplicationInstance",
			"sso:DeleteManagedApplicationInstance",
			"codewhisperer:CreateProfile",
			"codewhisperer:DeleteProfile"
		],
		"Resource": [
			"*"
		]
	    }
	]
}

参考:Setting up CodeWhisperer Professional with AWS Organizations administration - CodeWhisperer

そこで上記を参考に次のようなサービスコントロールポリシー(SCP)を作成し、メンバーアカウントによる CodeWHisperer 有効化を制限してみることにしました。

もしかすると冒頭と同じメッセージが表示されるかもしれないと思ったのですが、CodeWhisperer のセットアップを行おうとすると別のメッセージが表示されました。

You do not have sufficient permission on your user to administer CodeWhisperer. Ask your account administrator to provide you with the required codewhisperer:CreateProfile permission to proceed

こちらは明確に権限がないと説明されていますね。

さいごに

本日は Amazon CodeWhisperer のセットアップ中に「Error while fetching data」が発生する条件を調べてみました。

以上から冒頭の「Error while fetching data」が発生する条件としては IAM Identity Center 組織インスタンスが有効化されていない組織かつ、メンバーアカウントで CodeWhisperer をセットアップしようとした時と思われます。

また、今回の検証を通して、SCP を使ってメンバーアカウントによる CodeWhisperer 有効化の抑制を行うことが出来ることも確認出来ました。