问题标签 [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.
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。
amazon-web-services - 如何使用 pyspark 写入 S3 接入点
我有写入 s3 存储桶的 pyspark 代码,如下所示:
我正在测试通过存储桶的访问点写入存储桶。AWS 文档有一个使用 CLI 写入访问点的示例,如下所示:
我试过这样做:
但是,我收到此错误:
绝对 URI 中的相对路径
是否可以使用 pyspark 写入 S3 接入点?
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.
python - 使用 Boto3 列出具有访问点的 S3 存储桶对象
我正在尝试使用list_objects_v2
Python3 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 服务策略。
如果有人能对此有所了解,我将不胜感激。
amazon-web-services - AWS s3 通过 CORS 或接入点提供访问?403禁止错误
我正在将视频上传到 AWS s3 存储桶。这很好用。我现在需要通过 Nationbuilder 模板渲染这些视频,看起来像<video><source src="...s3_url"></video>
从我目前的测试来看,当页面尝试加载视频时,我收到了 403 禁止错误,但是当我访问 s3 链接时,我可以查看视频。
我试过的:
- 我尝试通过“桶策略”打开:
我不知道的是,我应该在哪里/如何授予我的网站“videoexample.com”访问 s3 存储桶的权限。
到目前为止,我所读到的可能性似乎是:
- CORS (AWS > S3 > 存储桶 > 权限)
- “访问控制列表”(ACL)
- “桶策略”
- “接入点策略”
- 或者可能是“接入点”
- 或者仍然可能通过 IAM:
s3:PutObjectAcl
或s3:PutObject
.
从 AWS > S3 > 存储桶 > 权限
阻止公共访问(存储桶设置)通过访问控制列表 (ACL)、存储桶策略、访问点策略或全部授予存储桶和对象的公共访问权限。
我真的很感激任何指示/建议/解释。
在此期间将继续阅读。
最好的
皮特
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
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
再次出现。无法理解这一点,似乎我缺少一些基本的东西,非常感谢文档或解决方案/建议中的任何指针。
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 和自定义域的情况下隐藏原始存储桶名称。
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
参数后,作业执行失败
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".
是否需要一些额外的配置才能使用主机名启用此访问?对于访问点和存储桶,我也将“阻止所有公共访问”保持为关闭。