Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services iam:PassRole api执行什么操作?_Amazon Web Services_Amazon Iam_Aws Sam - Fatal编程技术网

Amazon web services iam:PassRole api执行什么操作?

Amazon web services iam:PassRole api执行什么操作?,amazon-web-services,amazon-iam,aws-sam,Amazon Web Services,Amazon Iam,Aws Sam,在以下规则中: { "Condition": { "StringLikeIfExists": { "iam:PassedToService": "lambda.amazonaws.com" } }, "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::${AWS::AccountId}:role/some-

在以下规则中:

{
    "Condition": {
        "StringLikeIfExists": {
            "iam:PassedToService": "lambda.amazonaws.com"
        }
    },
    "Action": [
        "iam:PassRole"
    ],
    "Resource": [
        "arn:aws:iam::${AWS::AccountId}:role/some-role*"
    ],
    "Effect": "Allow"
}

我们使用此规则创建SAM模板的云形成堆栈(
SAM部署
)。SAM模板具有lambda和lambda的自定义角色


对于上述规则,我们到底在说什么?

简言之,该语句表示您可以将名称以
某个角色开头的角色分配给lambda服务

如果要将角色分配给lambda或EC2等服务,则需要具有执行
iam:PassRole
操作的权限

“iam:PassedToService”:“lambda.amazonaws.com”
指定可以将角色传递给哪个服务,在本例中是传递给lambda服务。例如,使用此条件,您将无法将此角色分配给EC2实例

虽然这会起作用,但最好使用
StringEquals
而不是
stringlikeiExists
。首先,您不需要像
那样使用
,因为服务名称中没有可变部分。它只不过是lambda.amazonaws.com
,它将保持这种状态。其次,您将此角色传递给服务,因此所提到的字符串将始终存在,因此无需使用
IfExists
,这用于在单个语句中指定多个操作,但条件仅适用于其中一些操作的情况。在这种情况下,可以使用
IfExists
part,这样就不必将语句分解为多个较小的语句

在你的例子中,你可以这样写条件

    "Condition": {
        "StringEquals": {
            "iam:PassedToService": "lambda.amazonaws.com"
        }
    }

所以这是否意味着。。。。我们可以写这行
Role:!在lambda函数属性的SAM模板中的GetAtt SomeLambdaRole.Arn
?由于上述规则…
iam:PassRole
Yes,进行调用的iam实体(在本例中是分配给EC2实例的iam角色)需要具有执行
iam:PassRole
操作的权限。api网关的服务名称是什么?因为我需要提供
iam:PassedToService
apigateway.amazonaws.com