📝

AWS Support Automation Workflows を使用する際には SCP にも注意が必要

に公開

セルフサービスの診断と修復 - AWS Support Automation Workflows - Amazon Web Services
AWS におけるトラブルシューティングを自動で実施できる AWS Support Automation Workflows ですが、SCP が原因でオートメーションの実行に失敗することがあるため紹介します。

結論

SCP でグローバル条件キーを使用しているとオートメーション実行時の権限チェックでエラーが発生することがあります。

[ERROR]: The IAM Identity "arn:aws:iam::012345678901:role/xxx" used to execute the runbook lacks following permission(s), please add the listed permission(s) to the role/user executing the document:

原因は IAM Policy Simulator がグローバル条件キーをサポートしていないためです。
IAM ポリシーシミュレーターを使用した IAM ポリシーのテスト - AWS Identity and Access Management

IAM Policy Simulator は、認可用のグローバル条件キーをサポートしているサービスを識別しません。例えば、あるサービスが aws:TagKeys をサポートしていないことを、Policy Simulator は識別しません。

検証

AWSSupport-TroubleshootAWSBatchJob - AWS Systems Manager Automation Runbook Reference
AWSSupport-TroubleshootAWSBatchJob で検証してみます。

まず、SCP で以下のようなグローバル条件キー RequestedRegion を定義しました。

"Condition": {
    "StringNotEquals": {
      "aws:RequestedRegion": [
        "ap-northeast-1"
      ]
    },

上記 SCP では東京リージョン以外からのリクエストを拒否する定義となっています。

次に、AWS Batch のジョブをスケジュール実行します。
ただし、実行前にコンピューティング環境を無効化しておきます。
これによりジョブが RUNNABLE でスタックします。

ジョブが RUNNABLE でスタックしたことを確認後、上記ドキュメントに沿ってオートメーションを実行します。
なお、オートメーションの実行ユーザーには AdministratorAccess のみが付与されています。

この状態でオートメーションの結果を見ると冒頭のエラーが発生していました。

[ERROR]: The IAM Identity "arn:aws:iam::012345678901:role/xxx" used to execute the runbook lacks following permission(s), please add the listed permission(s) to the role/user executing the document:

上記エラー発生後にバージニア北部リージョンの CloudTrail を確認したところ、SimulatePrincipalPolicy API が実行された記録の残っていました。
SimulatePrincipalPolicy - AWS Identity and Access Management

そのため、AWSSupport-TroubleshootAWSBatchJob のステップ 1 である PreflightPermissionChecks では IAM Policy Simulator が使用されていることがわかりました。

上述の通り IAM Policy Simulator ではグローバル条件キーをサポートしていないため正確な結果を得られず、オートメーションとしては権限不足の結果が表示されていました。

以上より、リージョン制限などで SCP でグローバル条件キーを使用している場合にはオートメーションでのトラブルシューティングができない可能性があります。

回避策としては既存のオートメーションを複製して権限チェックのステップをスキップするようカスタマイズする方法が考えられます。
ただし、カスタマイズしたオートメーションが正常に動作する保証はないため事前に検証する必要がありそうです。

まとめ

今回は AWS Support Automation Workflows を使用する際には SCP にも注意が必要であるという内容を紹介しました。
どなたかの参考になれば幸いです。

参考資料

Discussion