问题标签 [amazon-s3-access-points]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3368 浏览

python-3.x - 使用带有 boto3 的访问点从 S3 存储桶读取和写入

我必须使用带有boto3.

我创建了一个访问点,其策略允许读取和写入(<access_point_arn>是我的访问点ARN):

在官方文档中提到了接入点,其中接入点ARN必须代替存储桶名称(https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html) . 官方文档站点上没有针对开发人员的示例 ( https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html )。

因此,根据信息,我认为正确的使用方法是:

当我在附加了托管策略的 Lambda 中执行此代码时,AmazonS3FullAccess我得到一个ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden

Lambda 和 S3 接入点都连接到同一个 VPC。

0 投票
0 回答
698 浏览

amazon-web-services - 如何使用 pyspark 写入 S3 接入点

我有写入 s3 存储桶的 pyspark 代码,如下所示:

我正在测试通过存储桶的访问点写入存储桶。AWS 文档有一个使用 CLI 写入访问点的示例,如下所示:

我试过这样做:

但是,我收到此错误:

绝对 URI 中的相对路径

是否可以使用 pyspark 写入 S3 接入点?

0 投票
0 回答
621 浏览

python-3.x - Is it possible to read parquet files from S3 access point using pyarrow

It is possible to read parquet files from S3 as shown here or here.

I am working with S3 access points. Having S3 access point ARN is it possible to read parquet files from it?

I am trying with the following sample code:

Executing it results with:

I have also tried replacing / with : in S3_ACCESS_POINT_ARN which results in:

Finally I tried using:

which resulted in:

It is worth mentioning that there is no access issues with reading files from this access point, with the code below working:

UPDATE: S3 access point does not allow non top-level list objects operations:

But I cannot see any parameter that would allow pyarrow to treat the parquet file as a single file, which could potentially avoid having this issue.

0 投票
0 回答
1210 浏览

python - 使用 Boto3 列出具有访问点的 S3 存储桶对象

我正在尝试使用list_objects_v2Python3 Boto3 S3 API 客户端的功能来列出来自 S3 接入点的对象。

示例代码:

不知何故得到以下错误:

根据文档:https ://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html ,我应该能够将访问点list_objects_v2作为存储桶名称传递给函数。奇怪的是,这个功能在我的 Windows 10 笔记本电脑上本地运行。具有相同 Boto3 和 Botocore 包版本的相同 Python3.6 代码会在 AWS Glue Python Shell 作业中引发此错误。我还确保 Glue 角色附加了 S3 完全访问权限和 Glue 服务策略。

如果有人能对此有所了解,我将不胜感激。

0 投票
0 回答
195 浏览

amazon-web-services - AWS s3 通过 CORS 或接入点提供访问?403禁止错误

我正在将视频上传到 AWS s3 存储桶。这很好用。我现在需要通过 Nationbuilder 模板渲染这些视频,看起来像<video><source src="...s3_url"></video>

从我目前的测试来看,当页面尝试加载视频时,我收到了 403 禁止错误,但是当我访问 s3 链接时,我可以查看视频。

我试过的:

  • 我已经“解锁”了所有公共访问在此处输入图像描述
  • 我尝试了开放的CORS:
  • 我尝试通过“桶策略”打开:

我不知道的是,我应该在哪里/如何授予我的网站“videoexample.com”访问 s3 存储桶的权限。

到目前为止,我所读到的可能性似乎是:

  1. CORS (AWS > S3 > 存储桶 > 权限)
  2. “访问控制列表”(ACL)
  3. “桶策略”
  4. “接入点策略”
  5. 或者可能是“接入点”
  6. 或者仍然可能通过 IAM:s3:PutObjectAcls3:PutObject.

从 AWS > S3 > 存储桶 > 权限

阻止公共访问(存储桶设置)通过访问控制列表 (ACL)、存储桶策略、访问点策略或全部授予存储桶和对象的公共访问权限。

我真的很感激任何指示/建议/解释。

在此期间将继续阅读。

最好的

皮特

0 投票
1 回答
38 浏览

linux - 在 linux 机器上使用 s3a 失败 > 100 列镶木地板

我正在使用 s3a 从数据库读取数据帧并写入 .parquet(s3a://bucketname//folder)。它适用于 <100 列数据框,但 crash.exits spark-shell 用于 >~100 列。如果这是列限制/版本问题/内存问题,找不到任何材料?希望从有经验的社区中找到一些方向。

PS。与以下相同的代码适用于我本地机器上的 Eclipse Windows,但在 linux 实例上出现问题

spark版本- 2.4.0-cdh6.3.3 scala版本- 2.11.12 Java版本- 1.8

0 投票
1 回答
253 浏览

amazon-web-services - 通过访问点向 Amazon S3 授权角色

目标是将 Amazon S3 读写(列表、获取、放置、删除)访问限制为单个角色,并且仅通过访问点访问 S3,存储桶策略仅锁定到访问点。

到目前为止我所做的设置是

  • 将 s3 的部分(列表、获取、放置、删除)访问控制委托给访问点。
  • 在访问点级别应用显式拒绝以限制仅对一个角色的访问。
  • 在该角色中添加了一个策略,允许它通过访问点列出、获取、放置、删除。

但有AccessDenied上述任何操作的经验

这是 S3 存储桶策略:

这是接入点策略:

这是角色政策:

这不起作用 - AccessDenied。我正在使用假设的适当角色进行测试,例如使用此命令aws s3 ls "s3://arn:aws:s3:us-east-1:XXX-YYY-ZZZ:accesspoint/XXX-YYY-ZZZ/"

奇怪的是,如果角色策略资源使用 S3 存储桶 ARN(如arn:aws:s3:::XXX-YYY-ZZZ/*arn:aws:s3:::XXX-YYY-ZZZ)扩展,因此访问和 s3 存储桶资源都存在,则允许访问。如果删除任何accesspoint资源会使该资源AccessDenied再次出现。无法理解这一点,似乎我缺少一些基本的东西,非常感谢文档或解决方案/建议中的任何指针。

0 投票
1 回答
290 浏览

amazon-web-services - 是否可以将 S3 接入点用作静态网站?

我试图弄清楚是否可以使用 AWS S3 访问点来托管静态 S3 网站。

S3WebsiteBucket.WebsiteURL下面描述的资源很好用,但我需要改用接入点。

每当我请求索引文件时失败消息(URL 类似于https://my-access-point-0000000000.s3-accesspoint.eu-north-1.amazonaws.com/index.html)如下:

InvalidRequest 不支持您提供的授权机制。请使用签名版本 4。

我的 CloudFormation 模板:

是否可以将 S3 接入点用于此类任务,或者它不适合公共访问(静态网站)?如果可能的话,有什么我错过的 - 也许 S3AccessPoint 需要它自己的 IAM 访问策略?

我使用 S3 Access Point 的主要动机是在不使用 Route 53 和自定义域的情况下隐藏原始存储桶名称。

0 投票
1 回答
60 浏览

java - 访问 S3 访问点时,带有 AWS S3 插件的 Flink FileSync 抛出错误 - “null uri host”

遵循此说明后,我可以通过访问点 + VPC 端点从 AWS CLI 访问 S3 存储桶。

基本上我用

和我用的一样

所有aws s3 ...命令都很好用。

但是,我的基于 Java 的 Flink 项目代码并非如此。该代码适用于s3://<bucket name>,但似乎无法识别新的 S3 URI。

这是我的代码中定义接收器的方式:

传递s3://arn:aws:s3:ap-southeast-1:<account number>:accesspoint/<bucket name>s3Url参数后,作业执行失败

0 投票
0 回答
87 浏览

amazon-web-services - 如何使用主机名在 AWS S3 中使用多区域访问点?

根据此处的文档,我们应该能够使用<mrap-alias>.accesspoint.s3-global.amazonaws.com主机名格式使用多区域接入点,但这似乎对我不起作用。

我可以使用 ARN 访问接入点,但主机名方法给了我错误 "An error occurred (NoSuchBucket) when calling the ListObjectsV2 operation: The specified bucket does not exist".

是否需要一些额外的配置才能使用主机名启用此访问?对于访问点和存储桶,我也将“阻止所有公共访问”保持为关闭。