Mar*_*arc 6 javascript amazon-web-services node.js amazon-iam serverless
我试图在js处理程序中获取ssm参数,如下所示:
module.exports.post = (event, context, callback) => {
var params = {
Name: 'myParameter',
WithDecryption: true || false
};
ssm.getParameter(params, function(err, data) {
if (err) console.log(err, err.stack);
else console.log(data);
});
};
Run Code Online (Sandbox Code Playgroud)
并且我在serverless.yml文件中添加了以下权限角色
iamRoleStatements:
- Effect: Allow
Action:
- ssm:GetParameters
- ssm:GetParameter
- ssm:DescribeParameters
- kms:Encrypt
- kms:Decrypt
Resource: "*"
Run Code Online (Sandbox Code Playgroud)
使用CLI我可以成功执行 aws ssm get-parameter --names myParameter
但是当我调用该函数时,我在cloudWatch中收到以下错误
AccessDeniedException:用户:myUser无权执行:资源:myResource / myParameter上的ssm:GetParameter
我试图使用getParameters函数,获取确切的名称资源,但仍然是相同的错误消息。
任何帮助将非常感激。
刚刚创建了一个无服务器项目,它按预期工作。
权限在 serverless.yml 中设置,仅授予执行代码所需的权限。
无服务器.yml
service: poc-lambda-ssm
provider:
name: aws
runtime: nodejs8.10
variableSyntax: "\\${((?!AWS)[ ~:a-zA-Z0-9._'\",\\-\\/\\(\\)]+?)}"
iamRoleStatements:
- Effect: Allow
Action:
- ssm:GetParameter
Resource:
- 'Fn::Join':
- ':'
- - 'arn:aws:ssm'
- Ref: 'AWS::Region'
- Ref: 'AWS::AccountId'
- 'parameter/my-secure-param'
- Effect: Allow
Action:
- kms:Decrypt
Resource:
- 'Fn::Join':
- ':'
- - 'arn:aws:kms'
- Ref: 'AWS::Region'
- Ref: 'AWS::AccountId'
- 'key/alias/aws/ssm'
functions:
hello_ssm:
handler: handler.hello_ssm
Run Code Online (Sandbox Code Playgroud)
处理程序.js
'use strict';
const AWS = require("aws-sdk")
AWS.config = {
region:"us-east-1"
};
const ssm = new AWS.SSM({apiVersion: '2014-11-06'});
module.exports.hello_ssm = function(event, context, callback) {
var params = {
Name: 'my-secure-param',
WithDecryption: true
};
ssm.getParameter(params, function(err, data) {
if (err) callback(err);
else callback(null,"my secure param is: "+data.Parameter.Value);
});
};
Run Code Online (Sandbox Code Playgroud)
并在 AWS System Manager 中创建了一个名为my-secure-param 的参数,其类型为SecureString。
您还可以查看我的PoC Lambda SSM项目。在这个项目中,我使用无服务器来开发 lambda,它可以通过使用 invoke local -f hello_ssm 在本地调用。
归档时间: |
|
查看次数: |
2444 次 |
最近记录: |