我正在尝试使用 SSM 修改 EC2 实例上的现有卷。我附加了一个带有允许修改 EC2 实例上的卷的策略的角色。我在策略中选择的权限称为 ModifyVolume。当我尝试运行我的脚本时,它给了我以下消息:
调用 ModifyVolume 操作时发生错误(UnauthorizedOperation):您无权执行此操作。
我确信我使用的策略授予我此权限,所以我想知道为什么它不起作用?
这是我的 SSM 文档:
---
schemaVersion: "2.2"
assumeRole: "{{AutomationAssumeRole}}"
description: "Resizes the specified EBS volume to the target size"
parameters:
AutomationAssumeRole:
type: "String"
description: "The ARN of the role that allows Automation to perform the actions on your behalf."
default: "arn:aws:iam::accountnumber:role/SSMUpdateVolume"
VolumeId:
type: "String"
description: "(Required) EBS volume ID"
Size:
type: "String"
description: "(Required) Target size for the selected volume in GB"
mainSteps:
- action: "aws:runShellScript"
name: "ModifyVolumeSize"
inputs:
runCommand:
- "export AWS_DEFAULT_REGION=eu-central-1"
- "aws ec2 modify-volume --size {{Size}} --volume-id {{VolumeId}}"
我注意到当我将权限直接分配给分配给实例本身的角色时,它会起作用。但是,我只想在使用 SSM 文档时暂时允许此权限。因此,这意味着 SSM 文档不应用此权限,而是使用实例本身上缺少此 ModifyVolume 权限的那个权限。我怎样才能解决这个问题?
我认为这可能是因为我使用的是 aws:runShellScript 命令,所以它根本不应用角色而只是调用实例上的脚本?这可能是原因吗?如果是这种情况,我需要做什么才能完成这项工作?