小编bap*_*pak的帖子

AWS:如何通过 CloudFormation 更新现有的 S3 存储桶策略?

我有一个现有的 S3 存储桶my-bucket

我正在编写一个新的 CloudFormation 模板文件,该文件创建一些与my-bucket. my-bucket 现在,我的业务用例要求我从 CloudFormation 模板文件中向存储桶策略添加新的权限语句。

SourceBucketBucketPolicy:
    Type: AWS::S3::BucketPolicy
    Properties:
      Bucket: my-bucket
      PolicyDocument:
        Statement:
          - Effect: "Allow"
            Action:
              - 's3:PutBucketNotificationConfiguration'
            Resource: "arn:aws:s3:::my-bucket"
            Principal:
              AWS: !GetAtt MyLambdaExecutionRole.Arn
Run Code Online (Sandbox Code Playgroud)

问题是该存储桶已经具有以下存储桶策略,该策略是其他人在过去某个时刻通过 AWS 控制台手动添加的。从商业角度来看,这是一个重要的存储桶策略,因此我无法摆脱它:

{
    "Version": "2012-10-17",
    "Id": "S3-Policy",
    "Statement": [
        {
            "Sid": "DataCraft-012345678901-S3-datacraft",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::012345678901:user/datacraft"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-bucket/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

所以我想我唯一的选择是更新现有的存储桶策略以额外适应我的新策略声明。问题是:如何通过 CloudFormation 模板文件做到这一点?

编辑:AWS::IAM::Policy对于那些感兴趣的人,我最终通过编写而不是解决了问题AWS::S3::BucketPolicy

SourceBucketNotificationConfigurationPolicy:
    Type: AWS::IAM::Policy
    Properties:
      PolicyDocument:
        Statement:
          - Action: …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services aws-cloudformation

8
推荐指数
1
解决办法
1万
查看次数

在控制台中查看 SQS 消息会增加接收次数吗?

我是 AWS 的新手。我有一个带有 5 条消息的死信 SQS,当我试图弄清楚它们如何进入死信队列时,我检查了几次消息。我正在使用 AWS 控制台检查消息:右键单击 SQS,然后选择“查看/删除消息”并单击“开始轮询消息”。我每次检查时间我看到一个更高的ReceiveCount所有5个消息,通常加1。我不明白的是无论是需要一些其他组件读取来自SQS还是我很检查自身行为的消息是导致ReceiveCount以增量。所以我的问题是,后者甚至有可能吗?从控制台查看消息会导致增加ReceiveCount吗?

amazon-sqs amazon-web-services

4
推荐指数
1
解决办法
2233
查看次数

如何在 AWS CDK 中使用 CloudFrontWebDistribution 启用 SecurityHeaders 的托管响应标头策略?

CloudFrontWebDistribution我的 AWS CDK 基础设施代码中有一个 打字稿:

const cloudFrontDistribution = new cloudfront.CloudFrontWebDistribution(this, 'distribution', {
            originConfigs: [
                {
                    s3OriginSource: {
                        s3BucketSource: webBucket,
                        originAccessIdentity: originAccessIdentity,
                    },
                    behaviors : [ {
                        isDefaultBehavior: true,
                        defaultTtl: Duration.seconds(1),
                        lambdaFunctionAssociations: [
                            {
                                eventType: LambdaEdgeEventType.VIEWER_REQUEST,
                                lambdaFunction: midwayEdgeFunction.currentVersion,
                            },
                        ]
                    },
                    ]
                }
            ],
            defaultRootObject: 'index.html',
            viewerCertificate: cloudfront.ViewerCertificate.fromAcmCertificate(props.certificate, {
                aliases: [props.stageProps.cloud_front_domain_name],
                sslMethod: cloudfront.SSLMethod.SNI,
                securityPolicy: cloudfront.SecurityPolicyProtocol.TLS_V1_2_2019
            }),
            viewerProtocolPolicy: cloudfront.ViewerProtocolPolicy.HTTPS_ONLY,
            loggingConfig: {
                bucket: logBucket,
                includeCookies: true,
                prefix: 'cflogs/'
            }
        });
Run Code Online (Sandbox Code Playgroud)

我想为此发行版启用安全标头托管策略(请参阅此处)。但是,我只看到 aws cdk 文档针对Distribution对象执行此操作,而不是针对CloudFrontWebDistribution对象。

如何对CloudFrontWebDistribution …

amazon-web-services aws-cdk

4
推荐指数
1
解决办法
1496
查看次数