小编Tal*_*rry的帖子

如何限制对特定IAM角色的S3 Bucket的访问?

我们希望在S3上存储一些数据,并且只允许EC2实例或具有特定IAM角色的特定用户访问它们.不幸的是,我们在这方面遇到了一些麻烦.

我们就像这样在桶上制定政策

{
"Version": "2012-10-17",
"Id": "SamplePolicy",
"Statement": [

    {
        "Sid": "Stmt1331136294179",
        "Effect": "Deny",
        "NotPrincipal": {
            "AWS": [
                "arn:aws:iam::our-account-number:user/the-user",

                "arn:aws:iam::our-account-number:role/the-role"
            ]
        },
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::the-bucket/*"
    },
        {
        "Sid": "Stmt1331136364169",
        "Effect": "Allow",
        "Principal": {
            "AWS": [
                "arn:aws:iam::our-account-number:user/the-user",
                "arn:aws:iam::our-account-number:role/the-role"
            ]
        },
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::the-bucket/*"
    }

]}
Run Code Online (Sandbox Code Playgroud)

当我们使用用户密钥访问Bucket(使用boto)时,它可以在本地计算机或任何EC2实例中正常工作.

但是,当我们从Boto访问桶时,我们得到了

ClientError:调用GetObject操作时发生错误(AccessDenied):拒绝访问

我已经确认该实例具有正确的IAM角色

   curl http://169.254.169.254/latest/meta-data/iam/info/
{
  "Code" : "Success",
  "LastUpdated" : "2015-10-22T09:09:31Z",
  "InstanceProfileArn" : "our-account-number:instance-profile/the-role",
  "InstanceProfileId" : "instance-rpofile-id"
}
Run Code Online (Sandbox Code Playgroud)

我还尝试从存储桶中删除该策略,这确实使其可以再次访问.任何想法如何处理这个?

我在这里分享的示例是我为调试而做的简化版本.在生产中,我们希望强制使用KMS加密对象,并在密钥上也有访问策略.我们非常喜欢这个解决方案,如果可以,我们更愿意保留它.

谢谢

amazon-s3 amazon-ec2 amazon-web-services amazon-iam

10
推荐指数
1
解决办法
1214
查看次数

DynamoDB 不触发 lambda

我正在试验 dynamo db 和 lambda,但在以下流程中遇到了问题:

Lambda A 由放置到 S3 事件触发。它获取对象,一个音频文件,计算其持续时间并在 dynamoDB 中每 30 秒写入一条记录。

Lambda B 由 dynamoDB 触发,从 S3 下载文件并对 dynamo 行中定义的 30 秒记录进行操作。

我的问题是,当我运行这个流程时,函数 A 通过函数 B 写入发电机所需的所有行

  • 似乎没有为发电机中的每一行触发
  • 5 分钟后超时。

配置

  • 功能B设置最高内存和5分钟过期
  • 触发器设置为批量大小为 1 且起始位置最新

我已经确认的事情

  • 当函数 B 被触发时,从 S3 的下载发生得很快。这似乎不是拦截器
  • 当我用测试事件触发函数 B 时,它执行得很好。
  • 当我查看 cloudwatch 指标时,函数 B 的调用错误率接近 100%。我不知道这是否意味着他的函数被调用并出现错误或根本无法调用。

有没有人遇到过类似的问题?知道接下来要检查什么吗?谢谢

amazon-web-services amazon-dynamodb aws-lambda

5
推荐指数
2
解决办法
4997
查看次数