Разрешить уведомление о событии «ObjectCreated» из моего приложения zappa

Я создаю приложение zappa, чтобы я мог выполнять функцию лямбды, когда объект создается в моем ведомости S3. На данный момент, когда я пытаюсь обновить приложение zappa, zappa update devя получаю эту ошибку:

botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the GetBucketNotification operation: Access Denied

Я настроил свои учетные данные AWS в своей системе Mac, поэтому я предполагаю, что ошибка связана с моей политикой в ??Bucket, которая не позволяет это уведомление о событии.

Вот моя политика:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Allow All",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::****-bucket/*"
        },
        {
            "Sid": "Deny All Actions On All But Media and Static Unless Defined User",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": "arn:aws:iam::***********:root"
            },
            "Action": "s3:*",
            "NotResource": [
                "arn:aws:s3:::****-bucket/media/*",
                "arn:aws:s3:::****-bucket/static/*",
                "arn:aws:s3:::****-bucket/media_thumbnail/*"
            ]
        }
    ]
}

Любая моя конфигурация CORS:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

Вот мой zappa_settings.json:

{
    "dev": {
        "aws_region": "us-east-2",
        "django_settings": "zappatest.settings",
        "profile_name": "default",
        "project_name": "zappatest",
        "runtime": "python3.6",
        "s3_bucket": "zappa-*******",
        "vpc_config" : {
            "SubnetIds": [ "subnet-******", "subnet-*******", "subnet-*******" ],
            "SecurityGroupIds": [ "sg-******" ] 
        },
        "events": [{
            "function": "zappatest.lambda_function",
            "event_source": {
                  "arn":  "arn:aws:s3:::*****-bucket/media/",
                  "events": [
                    "s3:ObjectCreated:*"
                  ]
               }
            }]
    }
}

Является ли ошибка из-за моей безопасности в политике безопасности или чего-то еще?

python,django,amazon-web-services,amazon-s3,

0

Ответов: 0

Разрешить уведомление о событии «ObjectCreated» из моего приложения zappa

Я создаю приложение zappa, чтобы я мог выполнять функцию лямбды, когда объект создается в моем ведомости S3. На данный момент, когда я пытаюсь обновить приложение zappa, zappa update devя получаю эту ошибку:

botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the GetBucketNotification operation: Access Denied

Я настроил свои учетные данные AWS в своей системе Mac, поэтому я предполагаю, что ошибка связана с моей политикой в ??Bucket, которая не позволяет это уведомление о событии.

Вот моя политика:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Allow All",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::****-bucket/*"
        },
        {
            "Sid": "Deny All Actions On All But Media and Static Unless Defined User",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": "arn:aws:iam::***********:root"
            },
            "Action": "s3:*",
            "NotResource": [
                "arn:aws:s3:::****-bucket/media/*",
                "arn:aws:s3:::****-bucket/static/*",
                "arn:aws:s3:::****-bucket/media_thumbnail/*"
            ]
        }
    ]
}

Любая моя конфигурация CORS:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

Вот мой zappa_settings.json:

{
    "dev": {
        "aws_region": "us-east-2",
        "django_settings": "zappatest.settings",
        "profile_name": "default",
        "project_name": "zappatest",
        "runtime": "python3.6",
        "s3_bucket": "zappa-*******",
        "vpc_config" : {
            "SubnetIds": [ "subnet-******", "subnet-*******", "subnet-*******" ],
            "SecurityGroupIds": [ "sg-******" ] 
        },
        "events": [{
            "function": "zappatest.lambda_function",
            "event_source": {
                  "arn":  "arn:aws:s3:::*****-bucket/media/",
                  "events": [
                    "s3:ObjectCreated:*"
                  ]
               }
            }]
    }
}

Является ли ошибка из-за моей безопасности в политике безопасности или чего-то еще?

00Python, Django, амазонки-веб-сервисы, амазонка-s3,
Похожие вопросы