AWS Kinesis Boto3 IAM 权限

问题描述 投票:0回答:1

假设我有两个流,

staging
prod

我还有一个 AWS Lambda 函数,它使用

boto3
与 Kinesis 交互。这里的约束是 Lambda 应该只能与
staging
流交互。

Lambda 使用的角色具有以下策略:

{
    "Statement": [
        {
            "Action": [
                "kinesis:ListStreams",
                "kinesis:DescribeStream"
                "kinesis:ListShards",
                "kinesis:GetShardIterator"
                "kinesis:GetRecord",
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:kinesis:eu-central-1:xxx:stream/staging"
        }
    ],
    "Version": "2012-10-17"
}

我不能打电话给

kinesis_client.list_streams(ExclusiveStartStreamName="staging")
,因为我收到一条错误消息,说不允许使用的角色在
kinesis:ListStreams
流上
prod

有没有什么办法可以做到这一点而不是过于宽容?

我使用了以下政策:

{
    "Statement": [
        {
            "Action": [
                "kinesis:*",
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ],
    "Version": "2012-10-17"
}

但我更喜欢一种不开放权限的方式。

amazon-web-services aws-lambda amazon-iam amazon-kinesis
1个回答
0
投票

您可以将以下声明添加到您的策略中,以仅允许 ListStreams 用于产品。

    {
        "Action": [
            "kinesis:ListStreams"
        ],
        "Effect": "Allow",
        "Resource": "arn:aws:kinesis:eu-central-1:xxx:stream/prod”
    }
© www.soinside.com 2019 - 2024. All rights reserved.