
AWS Organizations のAI サービスのオプトアウトポリシーをアタッチ後、意図した通りに適用されているか確認方法を教えて下さい
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
困っていること
AWS Organizations の「AI サービスのオプトアウトポリシー」をアカウントに適用後、対象のアカウントがオプトアウトされていることを確認する方法はありますでしょうか?
作成したポリシーが正しく適用されているのか確認したいです。
例えば、対象のアカウントにログイン後、AIサービスのどこかのページに表示されているなど、作成したポリシーが意図内容で適用しているか判断する方法があれば教えて下さい。
結論
執筆時点で対象アカウントがオプトアウトされているかを確認する方法は、ありません。
AI サービスのオプトアウトポリシーとは、AWS のAI サービスがお客様のコンテンツを改善のために使用することを制御できるポリシーです。
別のポリシーであるサービスコントロールポリシー(SCP)の場合、ポリシーアタッチ後、対象のアカウントで動作確認することで、ポリシーが正しく適用されているか確認できます。
AI サービスのオプトアウトポリシーは、コンソール上でオプトアウトされているかどうか表示などはされず、確認するすべがありません。
しかし、オプトアウトの状態を直接確認する方法はありませんが、ポリシー作成時には構文チェックが行われ、一定の検証がなされます。
例えば、AWSドキュメントの[AI サービスのオプトアウトポリシーの構文と例]には、子ポリシーが上書きを制御するoperators_allowed_for_child_policies
があります。
operators_allowed_for_child_policies
の名前からわざと一文字削除した場合、以下の様にJSONエラーとなり、ポリシーが作成できません。(最後のsを削除しています)
また、キー名(opt_out_policy)やキー値(optOut)が正しく指定されていない場合、JSONエラーが発生します。
ただし、あくまでも構文チェックであり、意図したポリシーが適用されているか確認はできません。
構文例
AWSドキュメントに構文例がいくつか掲載されていますが、ドキュメントにはないパターンを1つご紹介します。
例えば、以下の要件がある場合のポリシーを説明します。
- (親ポリシー)組織内のすべてのアカウントを対象に、全サービスをオプトアウトするポリシーを適用
- (子ポリシー)全サービスをオプトインするポリシーを組織内のアカウントに直接適用
ルートOUに適用するAI サービスのオプトアウトポリシーは、以下のようになります。
{
"services": {
"default": {
"opt_out_policy": {
"@@assign": "optOut"
}
}
}
}
@@operators_allowed_for_child_policies
を利用すると、子ポリシーは上書きできなくなりますので、使いません。
オプトインする特定アカウントに適用するAI サービスのオプトアウトポリシーは、以下のとおりです。
{
"services": {
"default": {
"opt_out_policy": {
"@@assign": "optIn"
}
}
}
}
このポリシーを子ポリシーとしてOUやアカウントにアタッチすることで、対象のアカウントのみオプトインの状態になります。
エラーにならないパターン
先ほどの要件において、親ポリシーに@@operators_allowed_for_child_policies
を追加する場合を考えてみましょう。
{
"services": {
"@@operators_allowed_for_child_policies": ["@@none"],
"default": {
"@@operators_allowed_for_child_policies": ["@@none"],
"opt_out_policy": {
"@@operators_allowed_for_child_policies": ["@@none"],
"@@assign": "optOut"
}
}
}
}
子ポリシーは上書きできないため、子ポリシーをアタッチしているアカウントは、オプトインされず、オプトアウトされます。
この場合、意図した動作とは異なりますが、ポリシーのアタッチ自体はエラーなく行われてしまいます。