Amazon CloudWatch logging for Amazon Transfer Family
Amazon CloudWatch monitors your Amazon Transfer Family resources and the applications you run on Amazon in real time. You can use CloudWatch to collect and track metrics, which are variables you can measure for your resources and applications.
The CloudWatch home page automatically displays metrics about Transfer Family and every other Amazon service you use. You can additionally create custom dashboards to display metrics about your custom applications, and display custom collections of metrics that you choose.
You can create alarms that watch metrics and send notifications or automatically make changes to the resources you are monitoring when a threshold is breached. For example, you can monitor the files being transferred into a Transfer Family server and use that data to determine whether you need to deploy additional servers to handle increased load. You can also use this data to stop or delete under-used instances to save money.
Types of CloudWatch logging for Transfer Family
Transfer Family provides two ways to log events to CloudWatch:
JSON structured logging
Logging via a logging role
For Transfer Family servers, you can choose the logging mechanism that you prefer. For connectors and workflows, only logging roles are supported.
JSON structured logging
For logging server events, we recommend using JSON structured logging. This provides a more comprehensive logging format that enables CloudWatch log querying. For this type of logging, the IAM policy for the user that creates the server (or edits the server's logging configuration) must contain the following permissions:
-
logs:CreateLogDelivery
-
logs:DeleteLogDelivery
-
logs:DescribeLogGroups
-
logs:DescribeResourcePolicies
-
logs:GetLogDelivery
-
logs:ListLogDeliveries
-
logs:PutResourcePolicy
-
logs:UpdateLogDelivery
The following is an example policy.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": "arn:aws:logs:
region-id
:Amazon Web Services account
:log-group:/aws/transfer/*" } ] }
For details on setting up JSON structured logging, see Creating, updating, and viewing logging for servers.
Logging role
To log events for a managed workflow that is attached to a server, as well as for connectors, you need to specify a logging role. To set access, you create a resource-based IAM policy and an IAM role that provides that access information. The following is an example policy for an Amazon Web Services account that can log server events.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": "arn:aws-cn:logs:*:*:log-group:/aws/transfer/*" } ] }
For details on configuring a logging role to log workflow events see Managing logging for workflows.
Topics
- Creating, updating, and viewing logging for servers
- Managing logging for workflows
- Configure CloudWatch logging role
- Viewing Transfer Family log streams
- Creating Amazon CloudWatch alarms
- Logging Amazon S3 API calls to S3 access logs
- Examples to limit confused deputy problem
- CloudWatch log structure for Transfer Family
- Example CloudWatch log entries
- Using CloudWatch metrics for Transfer Family
- Using Amazon User Notifications with Amazon Transfer Family
Creating Amazon CloudWatch alarms
The following example shows how to create Amazon CloudWatch alarms using the Amazon Transfer Family metric, FilesIn
.
Logging Amazon S3 API calls to S3 access logs
If you are using Amazon S3
access logs to identify S3 requests made on behalf of your file transfer
users, RoleSessionName
is used to display which IAM role was assumed to
service the file transfers. It also displays additional information such as the user
name, session id, and server-id used for the transfers. The format is [AWS:Role
Unique Identifier]/username.sessionid@server-id
and is contained in the
Requester field. For example, the following are the contents for a sample Requester field from an S3 access log for a file that was copied to the S3 bucket.
arn:aws-cn:sts::AWS-Account-ID:assumed-role/IamRoleName/username.sessionid@server-id
In the Requester field above, it shows the IAM Role called IamRoleName
. For more information about IAM role unique identifiers,
see Unique
identifiers in the Amazon Identity and Access Management User Guide.
Using Amazon User Notifications with Amazon Transfer Family
To get notified about Amazon Transfer Family events, you can use Amazon User Notifications to set up various delivery channels. When an event matches a rule that you specify, you receive a notification.
You can receive notifications for events through multiple channels, including email,
Amazon Chatbot chat notifications, or Amazon Console Mobile Application push notifications. You can also see notifications in the Console Notifications Center
For more information, see the Customize file delivery notifications using Amazon Transfer Family managed
workflows