Control Towerのリージョンガードレールを使うとAWS Chatbotがエラーになる

CloudWatch にエラーログが流れたら AWS Chatbot で Slack 通知する仕組みを CDK で作ろうとしたところ、なぜか Chatbot が Slack の連携認証できず使えません。エラーの原因は、Control Tower のリージョンガードレールを利用して東京リージョン以外の利用を禁止していることでした。オハイオリージョン(us-east-2)を許可したらエラーが解消しました。

目次

CDK で Chatbot を作ろうとして発生したエラー

12:58:59 | CREATE_FAILED | AWS::Chatbot::SlackChannelConfiguration | hoge_channel Resource handler returned message: "Invalid request provided: AWS Chatbot can't create the configuration because Slack workspace hogehoge is not authorized with AWS account hoge. See https://docs.aws.amazon.com/chatbot/latest/adminguide/setting-up.html#Setup_intro (Service: AWSChatbot; Status Code: 400; Error Code: InvalidRequestException; Request ID: xxxxxxxx; Proxy: null)" (RequestToken: xxxxxxxx, HandlerErrorCode: InvalidRequest)

CDK で Chatbot と Slack の連携認証する方法を探してみたのですが、見当たりませんでした。

ブラウザから連携認証しようと AWS マネジメントコンソールで AWS Chatbot の画面を開いて Slack を選択すると、以下のようなエラーが表示されました。

User:hoge is not authorized to perform: chatbot:GetSlackOauthParameters on resource: hoge with an explicit deny

通常は以下の画面で連携認証ができるはず。

AWSマネジメントコンソールから、ChatbotとSlackの連携認証をする画面

AWS Chatbot には us-east-2 リージョンが必要

調べてみると、Chatbot のトラブルシューティングに、us-east-2 リージョンが必要っぽいことが書かれています。

AWS Chatbot doesn't have access to all AWS Regions.

AWS Chatbot is a global service and may execute API calls from any nearby AWS Region. If any Region is disabled, you may experience errors. Make sure the IAM role you set up for AWS Chatbot to assume has access to all Regions.

(中略)

If there is a policy in place that prevents access to services in certain Regions, you must change the policy to allow global AWS Chatbot access.

For example, the policy below allows AWS Chatbot in us-east-2 but denies other services by using a NotAction element.

日本語だと以下のような感じでしょうか。

AWS Chatbot は、どこかの Region が無効になっているとエラーが発生する可能性があります。AWS Chatbot の IAM ロールが、全リージョンにアクセスできるか確認してください。アクセスできない場合はポリシーを変更する必要があります。以下のポリシーでは、us-east-2 で AWS Chatbot を許可しています。

Control Tower のリージョン拒否コントロールを変更

他にも同じような罠があるかもしれないので、Control Tower のリージョンガードレールで 米国東部 (オハイオ) us-east-2 を許可したところ、Chatbot と Slack の連携認証が動くようになりました。






Amazon欲しいものリスト

私が作業中に飲んでいるコーヒーや欲しいマンガなどを集めました。開発・執筆の励みになりますのでクリックして頂ければ幸いです。

<Amazon欲しいものリスト>