是否有任何方法可以在 Datadog 中限制、选择或过滤 AWS 区域以进行 AWS 集成?
我知道我们可以根据标签过滤资源,但所有 AWS 服务的所有资源都没有指定区域的标签。此外,AWS 账户超过 25 个,因此在使用的所有 AWS 服务中的所有资源中添加该标签将是一项非常漫长而乏味的任务。
有什么快速的方法吗?
我们需要这样做的原因是为了降低所有 AWS 账户中所有 AWS 区域中由 DataDog 引起的 Get API 调用的成本。此外,我们不想向 Datadog 提供对其他 AWS 区域的不必要的访问权限。
要实现此目标,您需要做两件事:
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "eu-central-1"
}
}
export DD_API_KEY="*************"
export DD_APP_KEY="*************"
export AWS_ROLE_NAME="IAM-Role-Datadog"
export AWS_ACCOUNT_ID="12345678901"
curl -X PUT "https://api.datadoghq.com/api/v1/integration/aws?account_id=${AWS_ACCOUNT_ID}&role_name=${AWS_ROLE_NAME}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \
-d @- << EOF
{
"account_id": "${AWS_ACCOUNT_ID}",
"cspm_resource_collection_enabled": false,
"excluded_regions": [
"ap-northeast-1",
"ap-northeast-2",
"ap-northeast-3",
"ap-south-1",
"ap-southeast-1",
"ap-southeast-2",
"ca-central-1",
"eu-central-1",
"eu-north-1",
"eu-west-1",
"eu-west-2",
"eu-west-3",
"sa-east-1",
"us-west-1"
],
"metrics_collection_enabled": true,
"resource_collection_enabled": false,
"role_name": "${AWS_ROLE_NAME}"
}
EOF
进一步阐述:第二步就足够了,但可能会出现这样的情况:从 Datadog 控制台/GUI 添加新的 AWS 账户,而您忘记添加排除的区域,因为您无法在 Datadog 控制台/GUI 上指定排除的区域。为此,您必须使用 Datadog API。因此,第一步可以帮助我们识别缺少排除区域的 AWS 账户的此类配置,因为它将在 Datadog Integration for AWS 上显示有关不允许访问区域的错误。此外,第一步增加了额外的安全层。