编写三角洲湖表时拒绝访问S3

学习如何解决一个拒绝访问403禁止错误在编写三角洲湖表S3。

写的亚当Pavlacka

去年发表在:2022年5月10日

问题

DataFrame三角洲湖格式的内容写入一个S3的位置可能会导致一个错误:

com.amazonaws.services.s3.model。一个mazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: C827672D85516BA9; S3 Extended Request ID:

导致

一个操作包括三角洲湖格式需要其他文件格式不需要的权限。例如,三角洲湖需要创建一个_delta_log目录中。的操作还需要检查的最新版本提交日志。您需要添加额外的权限我和桶的角色允许写操作成功完成。

解决方案

添加以下权限,使写作δ表:

  1. 将这些权限添加到我政策JSON:
    [" s3: propertynames”、“s3: DeleteObject”、“s3: ListBucket”,“s3: GetObject”、“s3: PutObjectAcl”)
  2. 将这些权限添加到桶政策JSON:
    [" s3: GetObject”、“s3: GetObjectVersion”、“s3: propertynames”,“s3: DeleteObject”、“s3: ListBucket”,“s3: GetBucketLocation”)

或者,您可以使用JSON格式的我政策添加权限,如下所示:

{“版本”:“2012-10-17”,“声明”:[{“Sid”:“VisualEditor0”,“效果”:“允许”、“行动”:“s3: ListBucket”、“资源”:“在攻击:aws: s3:::我的桶”},{“Sid”:“VisualEditor1”,“效果”:“允许”、“行动”:[“s3: propertynames”,“s3: GetObject”、“s3: DeleteObject”、“s3: PutObjectAcl”),“资源”:“在攻击:aws: s3:::我的桶/文件夹/ *”}]}


这篇文章有用吗?