小编van*_*ish的帖子

boto3 aws删除所有入站安全组规则

我需要从安全组中删除所有安全组规则。我通过使用以下规则来获取规则:

import boto3
ec2 = boto3.resource('ec2')
sg = ec2.SecurityGroup('sg-someID')

sg.ip_permissions
Run Code Online (Sandbox Code Playgroud)

但我不确定如何使用revoke_ingress命令遍历它

python amazon-ec2 amazon-web-services boto3

3
推荐指数
1
解决办法
2370
查看次数

boto3 s3 copyObject 错误

我正在尝试使用 lambda 和 boto3 将文件从 1 个存储桶复制到同一个存储桶中的另一个前缀,但是我一直收到错误消息:

调用 CopyObject 操作时发生错误 (AccessDenied)。

或者

调用 HeadObject 操作时发生错误(403):禁止

取决于我使用的复制方法。

lambda 函数有一个分配给它的角色,我认为它赋予了它所需的所有权限:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Action": [
            "s3:HeadObject",
            "s3:ListObjects"
        ],
        "Resource": [
            "arn:aws:s3:::bucket-name",
            "arn:aws:s3:::bucket-name/*"
        ],
        "Effect": "Allow"
    },
    {
        "Action": [
            "s3:GetObject",
            "s3:PutObject",
            "s3:DeleteObject"
        ],
        "Resource": [
            "arn:aws:s3:::bucket-name/folderA/folderB/*",
            "arn:aws:s3:::bucket-name/folderC/folderD/*",
            "arn:aws:s3:::bucket-name/folderE/folderF/*"
        ],
        "Effect": "Allow"
    }
]
}
Run Code Online (Sandbox Code Playgroud)

拉姆达函数是:

#connect to s3
s3 = boto3.resource('s3')

dirs = {
    "folderA/folderB": "folderC/folderD"        
}    

key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'], encoding='utf-8')
etag = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['eTag'], encoding='utf-8')    
bucket = event['Records'][0]['s3']['bucket']['name']

filePathName …
Run Code Online (Sandbox Code Playgroud)

python lambda amazon-web-services boto3

3
推荐指数
1
解决办法
5839
查看次数

标签 统计

amazon-web-services ×2

boto3 ×2

python ×2

amazon-ec2 ×1

lambda ×1