見出し画像

AWS Support App in Slackを試してみました

はじめに

😱 AWS Support App in Slackは英語のケースのみで利用できるようです

AWS Support App in Slackが発表されましたね!

今まではマネジメントコンソールからぽちぽちケースを起票していましたが、明らかにSlackから起票できる方が気軽です。せっかくサポートを利用しているのに起票が面倒で質問できないなんてもったいないので少しでも手間が省けるのはすごく嬉しいです。

利用できる条件

Support Appを利用するには

  • Slackを利用している

  • AWSサポートプランがビジネスプラン以上である

ことが必要です。
クラシコムではSlackを利用しておりビジネスプランを契約しているため、設定を行いました。

前準備

  • Slackで連携するためのchannelを作成します

  • Support AppにアタッチするためのIAM RoleとPolicyを作成します

Channelの作成

SlackにAWS Support App専用のchannelを作成します。
AWSではSlack channelはprivateにして、サポートの操作を必要なメンバーのみ操作できることが推奨されています。
そのため、今回もprivateのchannelを作成しました。

I want to restrict specific users in my Slack channel from specific actions
By default, users in your Slack channel have the same permissions specified in the IAM policy that you attach to the IAM role that you create. This means anyone in the channel has read or write access to your support cases, whether or not they have an AWS account or an IAM user.
We recommend the following best practices:
- Configure private Slack channels with the AWS Support App
- Only invite users to your channel who need access to your support cases
- Use an IAM policy that has the minimum required permissions to the AWS Support App. See AWS managed policies for AWS Support App in Slack.

https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html#restrict-channel-users

IAM Role, Policyの作成

クラシコムではIAMはTerraformで管理しているため、上記のドキュメントのとおりIAM RoleとPolicyを作成しました。

*残念ながらSupport AppはTerraform resourceがまだ無いようです。

# ----------------------------------------------------------------------
#  AWS support Slack連携用
# ----------------------------------------------------------------------
data "aws_iam_policy_document" "aws_support_app_assume_role_policy" {
  version = "2012-10-17"

  statement {
    effect = "Allow"

    principals {
      type        = "Service"
      identifiers = ["supportapp.amazonaws.com"]
    }

    actions = [
      "sts:AssumeRole"
    ]
  }
}

resource "aws_iam_role" "aws_support_app" {
  name               = "aws-support-app"
  assume_role_policy = data.aws_iam_policy_document.aws_support_app_assume_role_policy.json
}

resource "aws_iam_role_policy_attachment" "aws_support_app" {
  policy_arn = "arn:aws:iam::aws:policy/AWSSupportAppFullAccess"
  role       = aws_iam_role.aws_support_app.name
}

ドキュメントでは細かくポリシーが指定されていましたが、AWSマネージドのAWSSupportAppFullAccessが同等のポリシーになっていたため、そちらを利用するようにしました。

設定方法

まず「サポート」のページから「AWS Support App in Slack」ページへ移動します。

次に、「Authorize workspace」をクリックしSlackと連携します。
*連携するSlack workspaceにログインしている必要があります。

「許可する」を押してワークスペースへのAWS Supportの権限を許可します。

次にマネジメントコンソールのAWS Support CenterからSlack configurationを行なっていきます。
「Add channel」をクリックし詳細を入力します。

Add channelでは作成したチャネルの情報を入れていきます。

NotificationsはAll casesにしてみました。
後はSlackのチャネルでAWS Support appをinviteする必要があります。

これで準備完了です。

起票する

Slackのチャネルでサポートの起票を試してみます。

/awssupport create-case

チャネルのチャット欄で上記コマンドを実行します。
すると画像のようなダイアログが表示されるので、いつも通りケースの入力を行います。

  • Subject: ケースタイトル

  • Description: ケースの内容

を記入します。
Nextを押すと追加で選択する項目が出るのでそちらも入れます。

  •  Issue type: 問題の種類

    •  Account and billing support: アカウントや支払いに関するサポート

    • Technical support: 技術に関するサポート

  • Service: 対象のサービス

  • Category: 困っている内容のカテゴリ

  • Severity: 緊急度

最後にAWSからどのように連絡が来るかを選べます。今回は「Email and Slack notifications」を選択しました。
まだChatを試していないのですが、「Live chat in Slack」にするとSlackのprivate chanelで連絡することができるようです。

「Review」を押すと、Slackのチャネルにケースが表示されます。まだ起票はしていない状況で、添付ファイルなどがある場合はこの後に設定できます。

ほとんど隠してしまっていて申し訳ないのですが、ケースの内容を確認し「Create case」を押すと起票完了です。
添付ファイルがある場合は「Attach file」で良さそうです。

念のため、マネジメントコンソールから確認します。

このように起票ができていることが確認できました。

😱 「表示するケースの言語」を「English」にしないとSlackから作成したケースは確認できませんでした

今回調査が足らず、日本語で英語のケースを作成してしまいました。
そのため、サポートの方で新しく日本語のケースを作成していただくという形になってしまいました。AWS Support App in Slackを利用する際は英語でケースを起票する必要がありそうです。

ケースの検索

過去に起票したケースをSlackのchannelで検索できます。

/awssupport search-case

上記コマンドをchannelで実行します。

日付やケースのステータスをいれて「Search」を押すと

当てはまるケースがあればこのような形でchannel上に表示されます。

😱 検索の対象が英語のケースのみになるため、過去に日本語で起票していても検索にひっかかりません

おわりに

以上のようにとても簡単にAWSのサポートケースを作成できるようになりました。

英語のケースのみしか対応しておらず、今後日本語のケースへの対応が待ち遠しいですね。日本語で起票ができるようになれば、よりサポートを利用しやすくなり開発スピードも上がりそうです。

クラシコムでは一緒にAWSでインフラ環境を構築し、安定したサービスを提供できるようにするエンジニアを募集しています。
もし興味がありましたらぜひお話しさせてください!