amazon-web-services - AWS Systems Manager (SSM) 无法更新 SageMaker 实例上的InstanceInformation
问题描述
我经常收到 Cloudwatch 授权警报,因为附加到我的SageMaker实例的角色似乎没有足够的 SSM(系统管理员)权限来更新实例信息。我的理解是代理amazon-ssm-agent想要访问 AWS API,但没有这样做。
我的角色拥有完整的 SSM 权限:
{
"Action": [
"ssm:*",
"ssmmessages:*"
],
"Resource": "*",
"Effect": "Allow"
}
但错误仍然存在:
{
"eventVersion": "1.05",
"userIdentity": {
"type": "AssumedRole",
"principalId": "XXXXXXXXXXXXX:SageMaker",
"arn": "arn:aws:sts::XXXXXXXXXXXXX:assumed-role/sagemaker_prod_Notebook_Instance_Role/SageMaker",
"sessionContext": {
"sessionIssuer": {
"type": "Role",
"principalId": "XXXXXXXXXXXXX",
"arn": "arn:aws:iam::XXXXXXXXXXXXX:role/sagemaker_prod_Notebook_Instance_Role",
"accountId": "XXXXXXXXXXXXX",
"userName": "sagemaker_prod_Notebook_Instance_Role"
}
},
"invokedBy": "im.amazonaws.com"
},
"eventSource": "ssm.amazonaws.com",
"eventName": "UpdateInstanceInformation",
"sourceIPAddress": "im.amazonaws.com",
"userAgent": "im.amazonaws.com",
"errorCode": "AccessDenied",
"errorMessage": "An unknown error occurred",
"requestParameters": {
"instanceId": "i-045f627a2d2e469b1",
"agentVersion": "2.3.714.0",
"platformType": "Linux",
"agentName": "amazon-ssm-agent"
},
"eventType": "AwsApiCall"
}
有没有人见过这个 ?
解决方案
这有点晚了,但我遇到了类似的问题,所以我联系了 AWS Support,这似乎是一个错误。
我被告知 AWS Sagemaker 团队默认安装了 ssm。Sagemaker 笔记本在 aws 服务账户中运行,尽管当客户在他们自己的账户中分配 Sagemaker 角色时,该角色无法通过客户分配的角色执行 UpdateInstance 信息。
支持建议我创建一个生命周期配置并利用以下代码示例来修复它: https ://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html https://github.com/ aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/disable-uninstall-ssm-agent/on-start.sh
推荐阅读
- debugging - 对列表的先前元素求和的函数的输出不正确
- java - 如何获取在类中声明为映射的常量
- python-3.x - 发现一个值中有多少个列表
- java - 如何在反射的私有方法上模拟自动装配的私有响应
- tableau-api - 如何对过去 N 周的数据进行平均?
- imagemagick - 如何对齐jpg中的对象并水平和垂直居中?
- django - Django:从左连接访问右手信息
- apache-kafka - 尝试使用 Salesforce Kafka 连接器连接到 Salesforce 案例推送主题时出现错误
- kotlin - Kotlin/JS 外部声明 - “名称包含不能出现在 JavaScript 标识符中的非法字符”
- ubuntu-18.04 - 修复 Google 的 Speech-to-text API 响应中的错误字符集