はじめに
AWS ConfigなどをOU(Organization Unit)以下にデプロイし、通知をChatbotで設定する際、Event busにOU内の他のアカウントからのイベントを受け取るポリシーを書く必要があります。
(そうしないとすべてのアカウントでChatbotを設定しないといけないため)
下図のようなイメージです。
OUが追加された時にポリシーを書き変えるのは骨なのでなんとかしたいです。
結論
Event busのポリシーの Condition
を次のようにすればいけます。
o-1122334455
は Organization ID、ou-1
, ou-2
はOUのIDです。
"Condition":{
"ForAnyValue:StringLike":{
"aws:PrincipalOrgPaths":[
"o-1122334455/*/ou-1/",
"o-1122334455/*/ou-2/"
]
}
}
参考1 より
余談1
参考1 によると、
- Organization ID はユニーク
- Root ID はユニークじゃない(Organization内ではユニーク)
- OU ID はユニークじゃない(Organization内ではユニーク)
らしいです。
なのでOUを一意に指定したい時は Organization ID と OU ID の両方が必要になります。
余談2
最初この資料を見てできないと思ってましたがなんとか参考1の情報を見つけました。自分を褒めたいです。
参考
終わりに
バケットポリシー、IAMポリシーなどのポリシー系はこの書き方が使える(らしい)のでOUが設定されている環境ではガンガン使っていきましょう!
検証済み
- バケットポリシー
- Event busポリシー
(他は未検証)