Teilweise Abfrageprotokolle aktivieren
DNS-Abfrageprotokolle enthalten detaillierte Angaben zu allen von den DNS-Nameservern bearbeiteten Anfragen und bieten Einblicke in den DNS-Verkehr, tote Einträge und Wachstumsanalysen. In IBM® NS1 Connect® werden die Abfrageprotokolle in Zeitabschnitten (30 Sekunden) zusammengefasst und an einen vom Kunden definierten S3 Speicherort (Abschnitt und Präfix) gesendet. S3 objekte sind gzip-kodiertes JSONL (zeilenbegrenztes JSON), wobei jede Zeile eine einzelne Aggregation darstellt. Die Objektschlüssel werden mit Prozesszeiten formatiert, während die Protokolle mit der Ereigniszeit versehen werden.
Gewährung des Zugangs zu NS1 Connect
Befolgen Sie die Anweisungen in der Dokumentation AWS , um Dritten den Zugriff auf Ihren Standort S3 zu gewähren. Wenden Sie sich dann an den IBM Support und geben Sie die folgenden Informationen an:
- S3 name des Eimers, Region und Präfix. Hinweis: Das Präfix sollte mit einem Schrägstrich ("/") enden.
- Amazon Resource Name (ARN) einer AWS Identity and Access Management (IAM) Rolle mit den folgenden Richtlinien:
- Mindestens
s3:PutObject-Berechtigungen für den oben genannten S3 -Standort. - Eine Vertrauensrichtlinie, die NS1 Connect
sts:AssumeRoleBerechtigungen anarn:aws:iam::025043166333:role/ service-role/pipeline-querylogs-role-ukj3oed7erteilt.
- Mindestens
- Eine
sts:ExternalId, auf die sich die oben genannte Vertrauensrichtlinie bezieht (in der Regel eine UUID).
Siehe die Beispielkonfiguration Terraform® für die Erstellung der richtigen IAM-Rollen und Richtlinien.
Beispieldaten
Objektpräfixe werden nach Jahr, Monat, Tag und Stunde (in GMT) unterteilt.
s3://<customer_bucket>/<customer_prefix>dns.query.logs/2019/10/16/20/2019-10-16-20-46- 33.115951011.gz
{
“count”: 10,
“customer”: 12345,
“domain”: “abc.example.com”,
“metric_name”: “dns.query.logs”,
“network”: “0”,
"pop":"iad",
“rectype”: “A”,
“timestamp”: 1571250180,
“zone”: “example.com”
}
| Parameter | Beschreibung |
| count | Die Anzahl der Abfragen dieses Datensatzes innerhalb des Aggregationsfensters (30 Sekunden) |
| customer | Die NS1 Connect Konto-ID |
| domain | Der abgefragte Datensatz |
| metric_name | dns.queries.logs ist derzeit der einzige enthaltene Datensatz. |
| network | Die eindeutige Netzkennung für Kunden mit eigenen Netzen (Standard ist 0) |
| pop | Der physische Standort des Point of Presence ( PoP ) Name Server |
| rectype | Der Typ des abgefragten DNS-Eintrags |
| timestamp | Der Zeitpunkt des Abfrageereignisses |
| zone | Die umschließende DNS-Zone für den abgefragten Datensatz |
Wenn Sie Terraform verwenden, um Ihre AWS Ressourcen zu verwalten, kopieren Sie den nachstehenden Code und fügen Sie ihn ein, um die Konfiguration mit Terraform anzuwenden.
variable "ns1_querylogs_s3_bucket" {
type = string
description = "The name of the destination bucket for NS1 query log objects."
}
variable "ns1_querylogs_s3_prefix" {
type = string
description = "The s3 prefix to prepend to all NS1 query log objects. Omit leading slash. Include trailing slash."
}
variable "ns1_querylogs_external_id" {
type = string
description = "An agreed-upon value for assuming external IAM roles (typically a UUID): https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html"
}
resource "aws_iam_role" "ns1_querylogs" {
name = "ns1-querylogs-role"
description = "The role that NS1 assumes to send query logs logs to this AWS account."
path = "/"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::025043166333:role/service-role/pipeline-querylogs-role-ukj3oed7"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "${var.ns1_querylogs_external_id}"
}
}
}
]
}
EOF
}
resource "aws_iam_policy" "ns1_querylogs" {
name = "ns1-querylogs-policy"
description = "Allows s3 objects to be put to a specific bucket and prefix."
path = "/"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::${var.ns1_querylogs_s3_bucket}/${var.ns1_querylogs_s3_prefix}*"
}
]
}
EOF
}
resource "aws_iam_role_policy_attachment" "ns1_querylogs" {
role = aws_iam_role.ns1_querylogs.name
policy_arn = aws_iam_policy.ns1_querylogs.arn
}