如何添加策略以使用 lambda 函数 AWS SAM 访问机密

San*_*wal 4 amazon-web-services

我试图向 SAM 模板中的 lambda 函数授予秘密管理器的访问权限,但它给我带来了策略声明格式错误的错误。

     Policies:
      - Statement:
      - Sid: AWSSecretsManagerGetSecretValuePolicy
        Effect: Allow
        Action: secretsmanager:GetSecretValue
        Resource: <arn >
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我向 lambda 函数添​​加策略的正确方法吗?我正在使用 SAM 模板(类型:AWS::Serverless::Function)

小智 5

此策略仅接受密钥的 ARN,因此密钥名称不起作用。https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-template-list.html#secrets-manager-get-secret-value-policy

下面对我有用。

Resources:  
MyFunction:
Type: AWS::Serverless::Function
Properties:
  CodeUri: MyProject/
  Handler: app
  Policies:
    - AWSSecretsManagerGetSecretValuePolicy:
        SecretArn: 'arn:aws:secretsmanager:####'
Run Code Online (Sandbox Code Playgroud)

或将其作为参数传递

    - AWSSecretsManagerGetSecretValuePolicy:
        SecretArn: !Ref RdsSecretArn
Run Code Online (Sandbox Code Playgroud)