Edited at

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

More than 1 year has 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




Mackerel に設定


ARN取得

aws iam list-roles \

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


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

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