在AWS Lambda函数中访问另一个AWS账户中的EC2资源,需要进行以下步骤:
首先需要在访问EC2实例的AWS账户上建立一个Role,并将其分配给Lambda函数,以授予Lambda函数访问该账户中的EC2实例的权限。
以下是一个例子,Role的名称为“AWS-Lambda-EC2-Access-Role”:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt0123456789",
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:Get*",
"ec2:RunInstances",
"ec2:Start*",
"ec2:Stop*",
"ec2:TerminateInstances",
"ec2:CreateTags",
"ec2:DeleteTags",
"elasticloadbalancing:Describe*",
"elasticloadbalancing:RegisterInstancesWithLoadBalancer",
"elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
"autoscaling:Describe*",
"autoscaling:CreateAutoScalingGroup",
"autoscaling:UpdateAutoScalingGroup",
"autoscaling:DeleteAutoScalingGroup",
"autoscaling:CreateLaunchConfiguration",
"autoscaling:DeleteLaunchConfiguration",
"autoscaling:CreateOrUpdateTags",
"cloudwatch:DescribeAlarms",
"cloudwatch:GetMetricStatistics",
"cloudwatch:ListMetrics",
"sns:ListSubscriptions"
],
"Resource": [
"*"
]
}
]
}
在拥有EC2实例的AWS账户中建立一个Policy,以授予Lambda函数通过Role访问EC2的权限。
以下是一个例子:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [