Closed6
AWS Support App in Slackの設定方法

記事にするまでもないのでこちらで。
terraformで実装する。プロバイダーはAWSCCを利用

Global Servicesなのでprodやstagingと別にglobalディレクトリ新規作成
(route53やIAM等もここで良さそう)
main.tfはロールと実際のSlack連携のリソースを作成する。
※Slackの情報はvariables.tfに定義。こちらは環境によって違うので割愛
# ... プロバイダー定義やバックエンド設定を記載 ...
# IAM Role for AWS Support App
resource "aws_iam_role" "support_app_slack_role" {
name = "AWSSupportSlackAppRole"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Effect = "Allow"
Principal = {
Service = "supportapp.amazonaws.com"
}
Action = "sts:AssumeRole"
}
]
})
tags = {
Name = "AWSSupportSlackAppRole"
Environment = "global"
Purpose = "Support App Slack Integration"
}
}
# IAM Role Policy Attachment for AWS Support App
resource "aws_iam_role_policy_attachment" "support_app_policy" {
role = aws_iam_role.support_app_slack_role.name
policy_arn = "arn:aws:iam::aws:policy/AWSSupportAppFullAccess"
}
# AWS Support App Slack Channel Configuration
resource "awscc_supportapp_slack_channel_configuration" "dev_notify_channel" {
team_id = var.slack_team_id
channel_id = var.slack_channel_id
channel_name = var.slack_channel_name
notify_on_create_or_reopen_case = var.notify_on_create_or_reopen_case
notify_on_add_correspondence_to_case = var.notify_on_add_correspondence_to_case
notify_on_resolve_case = var.notify_on_resolve_case
notify_on_case_severity = var.notify_on_case_severity
channel_role_arn = aws_iam_role.support_app_slack_role.arn
}
作成後terraform apply
を実施。無事完了した。

GUIでSlackのワークスペースの承認が必要なのでサポートのページからワークスペースを承認する。

実際に連携するチャンネルでAWS Support Appを追加

上記設定で無事利用できた。
使い方は/awssupport help
を実行すると確認できる。
このスクラップは3日前にクローズされました