如何解决在为 Systems Manager 清单创建资源数据同步时来自 Amazon S3 的“S3 桶写入失败”403 访问被拒绝错误?

1 分钟阅读
0

我想解决创建资源数据同步时来自 Amazon Simple Storage Service(Amazon S3)的 403 访问被拒绝错误。

解决方法

有两种方法用于为 AWS Systems Manager 清单配置资源数据同步

  • 为同一组织内的多个账户创建资源数据同步。
  • 为不在同一组织内的多个账户创建资源数据同步。

要解决 S3 桶写入失败错误,请执行以下操作:

对同一组织内的多个账户进行故障排除

确保集中 Amazon S3 桶策略具有允许多个 AWS 账户向桶发送清单数据所需的权限。

要为同一组织内的多个账户创建资源数据同步,请使用 CreateResourceDataSync API 并确保指定 DestinationDataSharing 参数。在 AWS CloudTrail 中,您可以检查事件名称 CreateResourceDataSync 的 API 请求,以确认事件中包含 DestinationDataSharing 参数。

**注意:**当资源数据同步对应于同一组织内的多个账户时,您无法从 AWS 管理控制台创建资源数据同步。

以下是 CreateResourceDataSync 的 AWS 命令行界面(AWS CLI)命令示例:

aws ssm create-resource-data-sync --sync-name name --s3-destination "BucketName=DOC-EXAMPLE-BUCKET,Prefix=prefix-name,SyncFormat=JsonSerDe,Region=AWS Region ID,DestinationDataSharing={DestinationDataSharingType=Organization}"

**注意:**如果在运行 AWS CLI 命令时收到错误,请确保您使用的是最新版本的 AWS CLI

对不在同一组织内的多个账户进行故障排除

要创建资源数据同步,请确认目标 S3 桶的 S3 桶策略允许从源账户执行所需操作。

例如,您让账户 A账户 B 将清单数据发送到账户 C 中的 S3 桶。

账户 C 中的 S3 桶策略类似于以下示例策略:

{           
    "Version": "2012-10-17",  
    "Statement": [  
        {  
            "Sid": "SSMBucketPermissionsCheck",  
            "Effect": "Allow",  
            "Principal": {  
                 "Service": "ssm.amazonaws.com"    
            },  
            "Action": "s3:GetBucketAcl",  
            "Resource": "arn:aws:s3:::S3_bucket_name"  
         },  
         {  
             "Sid": " SSMBucketDelivery",  
             "Effect": "Allow",  
             "Principal": {  
                 "Service": "ssm.amazonaws.com"  
             },  
             "Action": "s3:PutObject",  
             "Resource": [  
                 "arn:aws:s3:::S3_bucket_name/*/accountid=AWS_AccountA_ID/*",  
                 "arn:aws:s3:::S3_bucket_name/*/accountid=AWS_AccountB_ID/*"  
           ],  
           "Condition": {  
               "StringEquals": {  
                   "aws:SourceAccount": [  
                       "AWS_AccountA_ID",  
                       "AWS_AccountB_ID"  
                    ],  
                    "s3:x-amz-acl": "bucket-owner-full-control"  
                },  
                "ArnLike": {  
                   "aws:SourceArn": [  
                        "arn:aws:ssm:*:AWS_AccountA_ID:resource-data-sync/*",  
                        "arn:aws:ssm:*:AWS_AccountB_ID:resource-data-sync/*"  
                   ]  
                }  
           }  
        }  
   ]  
}  

**注意:**要对资源数据同步进行加密,请确保更新 AWS Key Management Service(AWS KMS)密钥策略和 S3 桶策略。有关详细信息,请参阅演练: 使用资源数据同步来聚合清单数据

AWS 官方
AWS 官方已更新 1 年前