首页 > 解决方案 > 是否可以覆盖 AWS SAM 策略模板占位符变量

问题描述

我目前正在尝试将 AWS SAM 策略模板KMSDecryptPolicy和添加KMSEnecryptPolicy到我的配置 yml 中,但 KMS 密钥位于不同的账户中,我需要跨账户访问才能执行此操作。

但是,当使用上述策略模板时,我只能传递KeyId而不是作为占位符变量的 AWS 帐号。

我正在尝试使用 AWS SAM 策略模板来执行此操作。

对此的任何支持将不胜感激。

这是我当前政策的一个例子。

      Policies:
    - arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole
    - DynamoDBCrudPolicy:
        TableName: !Ref InvoiceFeaturesTable
    - S3CrudPolicy:
        BucketName: !Ref InvoiceFeaturesBucket

示例代码

标签: amazon-web-servicesaws-lambdaamazon-iamserverlessaws-sam

解决方案


Both KMSDecryptPolicy and KMSEnecryptPolicy uses ${AWS::AccountId} which defaults to the current AWS account and you cannot override it via policy templates. You ONLY can pass KeyId: Reference

What you can simply do is to copy the policy template into your SAM template as inline policy and modify it as required. Reference


推荐阅读