Help us understand the problem. What is going on with this article?

Mackerel AWSインテグレーション設定(IAMロール)

More than 3 years have passed since last update.

MackerelでIAMロールでの設定が行えるようになりました。

AccessKeyでは無く、Roleを推奨ということなので、IAMロールで設定します。
AWSリソースは AWS CLI で作成します。

公式手順も更新されています。

事前準備

IAMロール作成に必要になる JSON ファイルを準備します。

ポリシーファイル作成

AssumeRolePolicyDocument.json

公式手順に記載の Account ID、External ID で作成します。

許可するAccount IDには 217452466226 、External IDには Mackerel-AWS-Integration と入力して下さい。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::217452466226:root"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "Mackerel-AWS-Integration"
        }
      }
    }
  ]
}

MackerelAWSIntegrationPolicy.json

タグ絞り込み用のインラインポリシーです。
AWSインテグレーションの対象リソースが増えた場合は適宜追加が必要になると思います。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeTags"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticloadbalancing:DescribeTags"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "rds:ListTagsForResource"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "elasticache:ListTagsForResource"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

IAMロール作成

IAMロール

ポリシーファイルを使用してIAMロールを作成します。

aws iam create-role \
  --role-name "MackerelAWSIntegrationRole" \
  --assume-role-policy-document file://AssumeRolePolicyDocument.json

IAMポリシー付与

公式記載のポリシーを作成したIAMロールに付与します。
AWSインテグレーションの対象リソースが増えた場合は、ポリシーの追加が必要になると思います。

for POLICYNAME in \
AmazonEC2ReadOnlyAccess \
AmazonElastiCacheReadOnlyAccess \
AmazonRDSReadOnlyAccess
do
  aws iam attach-role-policy \
    --role-name "MackerelAWSIntegrationRole" \
    --policy-arn arn:aws:iam::aws:policy/${POLICYNAME}
  sleep 1
done

インラインポリシー付与

ポリシーファイルを使用してタグ絞り込み用のインラインポリシーを付与します。

aws iam put-role-policy \
  --role-name "MackerelAWSIntegrationRole" \
  --policy-name "MackerelAWSIntegrationPolicy" \
  --policy-document file://MackerelAWSIntegrationPolicy.json

IAMロール作成結果

  • IAM Role

20161012_Mackerel_AWS_role_01.png
20161012_Mackerel_AWS_role_02.png

Mackerel に設定

ARN取得

aws iam list-roles \
--query 'Roles[?RoleName==`MackerelAWSIntegrationRole`].Arn' \
--output text

ARNをAWSインテグレーションへ登録

20161012_Mackerel_AWS_role_03.png

タグ絞り込みを行い、意図した台数となることを確認できました。

20161012_Mackerel_AWS_role_04.png

htnosm
うろ覚えを無くしていこうともがき苦しむ人の備忘録 - nullはナルじゃなくヌル - editorはEmacsじゃなくvi - gitはジットじゃなくギット - 饂飩より蕎麦 - 茸より筍 - 四季は秋
http://htnosm.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away