我試圖按照此tutorial設置關閉/啓動實例的lambda函數,並將特殊標記添加到ec2實例。以有限政策授予對AWS Lambda服務的訪問權
分配給Admin用戶自己角色的政策,我可以訪問如通過
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudwatch:*",
"cognito-identity:ListIdentityPools",
"cognito-sync:GetCognitoEvents",
"cognito-sync:SetCognitoEvents",
"dynamodb:*",
"events:*",
"iam:ListAttachedRolePolicies",
"iam:ListRolePolicies",
"iam:ListRoles",
"iam:PassRole",
"kinesis:DescribeStream",
"kinesis:ListStreams",
"kinesis:PutRecord",
"lambda:*",
"logs:*",
"s3:*",
"sns:ListSubscriptions",
"sns:ListSubscriptionsByTopic",
"sns:ListTopics",
"sns:Subscribe",
"sns:Unsubscribe"
],
"Resource": "*"
}
]
}
所有lambda表達式我堅持爲第6步,同時設置Lambda function handler and role
同時選擇「基本執行角色」,錯誤
用戶:阿爾恩:AWS:IAM :: XXXX:用戶/ yyyy是無權執行: IAM:CREATEROLE資源:阿爾恩:AWS:IAM :: XXXX:角色/ lambda_basic_exec
我的角色看起來政策某物是這樣的:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:Start*",
"ec2:RunInstances",
"ec2:Stop*",
],
"Resource": "*"
}
]
}
這似乎是合理的給我的有限的權利。
我應該問什麼我的管理員更新分配給我的策略,以便我可以成功設置lambda函數的計劃事件,如教程中所述?或者這可以通過其他方式來完成,例如通過添加新角色來使用IAM?我只想要足夠的權利。
所以我需要'iam:CreateRole,attachRolePolicy和createPolicy'。這不會擴大我的權利,例如我可能會增加一項政策給我自己,以便延長我的權利等等。 – sakhunzai
是的,這是問題,與這些權利,它擴展了你的權利,幾乎作爲管理員。例如我在我的回答中解釋(或者至少我試圖解釋:)),通過這些權利,您可以創建具有管理權限的角色,承擔該角色並因此獲得帳戶的管理員權限。這就是爲什麼我建議您的管理員爲您預先創建角色,並且在您的教程的第6步中,您將選擇其中一個角色,而不是選擇創建新角色的選項。那有意義嗎?對不起,如果我的英語不夠清楚,但:) – Tom
謝謝。您是否認爲通過角色>添加角色>角色名稱[abc]> AWS服務角色(選擇AWS Lambda)從IAM控制檯添加新角色,那麼該角色將在那裏列出? – sakhunzai