AWSのコストをSlackに通知する【Lambda - (2)STS編】

2020-03-21

AWSのコストをSlackに通知する」シリーズです。

前回記事ではIAMを作成しました。

おさらい

Lambdaを使って、CloudWatch MetricsからAWSのコストを取得するためには下記のステップを踏みます。

  • (1) Lambda実行用のIAMロールを付与し、Lambdaを実行する
  • (2) STSを用いてコスト取得用のIAMロールにスイッチする
  • (3) CostExplorerからコスト情報がLambdaへと返される

前回記事では(1)用のIAMを作成したので、次は(2)のSTS用のIAMロールを作成します。

(1) STS(Security Service Token)用のIAMロールの作成

まずはSTSに使用するIAMロールの作成から。

本記事では「aws-cost-monitoring-metrics」ロールを作成し、以下の手順を実行します。

信頼されたエンティティ

  • 現アカウントの全てのIAMユーザ/ロールからの「sts:AssumeRole」の実行を許可する。
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<あなたのAWSアカウントID>:root"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

「arn:aws:iam::xxx:root」はそのアカウント上(xxx)の全てのIAMユーザ及びロールを示します。 詳しく知りたい方は公式ドキュメントAWS JSON ポリシーの要素: Principalを読んでください。

実行ポリシー

  • cloudwatchからメトリクスを取得できる権限を付与する
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowGetCost",
            "Effect": "Allow",
            "Action": "cloudwatch:GetMetricData",
            "Resource": "*"
        }
    ]
}

今回は以上です。次回は、いよいよ「(3) Lambda」偏です。

...SNSにもシェアしてみる?
AWSサーバレス技術Slackコスト通知awslambdasnscloudwatch
(C) 2020, All Rights Reserved.

AWSのコストをSlackに通知する【Lambda - (3)Lambda準備編】

AWSのコストをSlackに通知する【Lambda - (1)IAM作成編】