本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
日志记录和监控
为了帮助您调试编译作业、处理作业、训练作业、终端节点、转换作业、笔记本实例和笔记本实例生命周期配置,算法容器、模型容器或笔记本实例生命周期配置发送到 stdout 或 stderr 的任何内容也会发送到 Amazon Logs。 CloudWatch 您可以使用 Amazon 监控 A SageMaker I Studio CloudWatch,亚马逊会收集原始数据并将其处理为可读的近乎实时的指标。这些统计数据会保存 15 个月,方便您访问历史信息并更好地了解 Web 应用程序或服务的运行情况。
使用登录 CloudWatch
数据科学流程本质上具有实验性和迭代性,必须记录笔记本使用情况、训练/处理作业运行时间、训练指标和端点服务指标(如调用延迟)等活动。默认情况下, SageMaker AI 会将指标发布到 CloudWatch 日志,并且可以使用使用 AWS KMS客户管理的密钥对这些日志进行加密。
您也可以使用VPC终端节点向其发送日志, CloudWatch 而无需使用公共互联网。还可以设置特定阈值监视警报,在达到对应阈值时发送通知或采取行动。有关更多信息,请参阅 A mazon CloudWatch 用户指南。
SageMaker AI 在下方为 Studio 创建了一个日志组/aws/sagemaker/studio
。此日志组下的每个用户配置文件和应用程序都有专属日志流,而生命周期配置脚本也有专属日志流。例如,“studio-user”用户配置文件具有 Jupyter 服务器应用程序和附加的生命周期脚本,而数据科学内核网关应用程序具有以下日志流:
/aws/sagemaker/studio/<domain-id>/studio-user/JupyterServer/default
/aws/sagemaker/studio/<domain-id>/studio-user/JupyterServer/default/LifecycleConfigOnStart
/aws/sagemaker/studio/<domain-id>/studio-user/KernelGateway/datascience-app
为了 SageMaker 让 AI 代表你向其 CloudWatch 发送日志,Training/Processing/Transform任务的调用者APIs需要以下权限:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogDelivery", "logs:Describe*", "logs:GetLogEvents", "logs:GetLogDelivery", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:UpdateLogDelivery" ], "Resource": "*", "Effect": "Allow" } ] }
要使用自定义 AWS KMS 密钥加密这些日志,您首先需要修改密钥策略以允许 CloudWatch 服务加密和解密密钥。创建日志加密 AWS KMS 密钥后,请修改密钥策略以包括以下内容:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:region:account-id:*" } } } ] }
请注意,对于要加密的 CloudWatch 日志,您可以随时使用ArnEquals
并提供特定的 Amazon 资源名称 (ARN)。为简单起见,亚马逊为您演示如何使用此密钥加密账户中的所有日志。此外,训练、处理和模型端点还会发布有关实例CPU和内存利用率、托管调用延迟等的指标。您可以进一步配置 AmazonSNS,使其在超过特定阈值时将事件通知管理员。训练和处理的使用者APIs需要具有以下权限:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "sns:ListTopics" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringLike": { "cloudwatch:namespace": "aws/sagemaker/*" } } }, { "Action": [ "sns:Subscribe", "sns:CreateTopic" ], "Resource": [ "arn:aws:sns:*:*:*SageMaker*", "arn:aws:sns:*:*:*Sagemaker*", "arn:aws:sns:*:*:*sagemaker*" ], "Effect": "Allow" } ] }
使用审计 AWS CloudTrail
为了改善您的合规状况,请对您的所有内容APIs进行审计 AWS CloudTrail。默认情况下,所有 SageMaker AI 都会APIs被记录下来AWS CloudTrail
除InvokeEndpoint
和InvokeEndpointAsync
之外,所有 SageMaker AI 操作都由操作记录 CloudTrail 并记录在操作中。例如,对CreateTrainingJob
CreateEndpoint
、和CreateNotebookInstance
操作的调用会在 CloudTrail 日志文件中生成条目。
每个 CloudTrail 事件条目都包含有关谁生成请求的信息。身份信息有助于您确定以下内容:
-
请求是使用根用户凭证还是 AWS IAM 用户凭证发出的。
-
请求是使用角色还是联合用户的临时安全凭证发出的。
-
请求是否由其他 AWS 服务发出。有关示例事件,请参阅附带 CloudTrail文档的 “记录 SageMaker AI API 通话”。
默认情况下,将用户配置文件的 Studio 执行角色名称 CloudTrail 记录为每个事件的标识符。此方法适用于每位用户都有专属执行角色的情况。如果多个用户共享同一个执行角色,则可以使用该sourceIdentity
配置将 Studio 用户配置文件名称传播到 CloudTrail。要启用该sourceIdentity
功能,请参阅监控来自 Amazon A SageMaker I Studio 的用户资源访问权限。在共享空间中,所有操作都将该空间ARN视为来源,您无法通过审计sourceIdentity
。