似乎默认情况下,由Pulumi创建的lambda函数具有AWSLambdaFullAccess
权限。这种类型的访问范围太广,我想用细粒度的ACL代替它。
例如,假设我正在index.js文件中创建一个cloud.Table
,我想指定我正在创建的lambda端点(在同一文件中)仅对该特定表具有读取权限。
有没有办法自己编写IAM策略?
答案 0 :(得分:3)
@pulumi/cloud
库当前在AWS上使用一组统一的IAM策略运行所有计算(lambda和容器化服务)。
您可以通过运行以下命令来设置要使用的策略:
pulumi config set cloud-aws:computeIAMRolePolicyARNs "arn:aws:iam::aws:policy/AWSLambdaFullAccess,arn:aws:iam::aws:policy/AmazonEC2ContainerServiceFullAccess"
上面的值是默认值。参见https://github.com/pulumi/pulumi-cloud/blob/master/aws/config/index.ts#L52-L56。
有计划直接从@pulumi/cloud
中使用的资源中支持对权限和计算权限的更精细控制-例如,请参见https://github.com/pulumi/pulumi-cloud/issues/145和https://github.com/pulumi/pulumi-cloud/issues/168。
较低级的库(例如@pulumi/aws
和@pulumi/aws-serverless
)可以完全控制应用于Function
对象的角色和/或策略。