gpt4 book ai didi

amazon-s3 - 用于访问 S3 上的 jgit 的 IAM 配置

转载 作者:行者123 更新时间:2023-12-03 22:27:53 27 4
gpt4 key购买 nike

我正在尝试创建 IAM 权限,以便 jgit 可以访问我的一个存储桶中的目录。

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::<mybucket>/<mydir>/*"]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": ["arn:aws:s3:::<mybucket>/<mydir>"]
}
]
}

不幸的是,它会引发错误。我不确定需要进行哪些其他允许操作才能使其正常工作。 (在 IAM 有点新)。
Caused by: java.io.IOException: Reading of '<mydir>/packed-refs' failed: 403 Forbidden
at org.eclipse.jgit.transport.AmazonS3.error(AmazonS3.java:519)
at org.eclipse.jgit.transport.AmazonS3.get(AmazonS3.java:289)
at org.eclipse.jgit.transport.TransportAmazonS3$DatabaseS3.open(TransportAmazonS3.java:284)
at org.eclipse.jgit.transport.WalkRemoteObjectDatabase.openReader(WalkRemoteObjectDatabase.java:365)
at org.eclipse.jgit.transport.WalkRemoteObjectDatabase.readPackedRefs(WalkRemoteObjectDatabase.java:423)
... 13 more
Caused by: java.io.IOException:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>...</RequestId><HostId>...</HostId></Error>
at org.eclipse.jgit.transport.AmazonS3.error(AmazonS3.java:538)
... 17 more

403 Forbidden 显然是错误,但不确定需要添加到 IAM 中的内容。有任何想法吗?

[也应该补充说,我在策略模拟器中尝试了这个,它似乎在那里工作。]

最佳答案

“403”错误可能只是意味着 key <mydir>/packed-refs不存在。根据 https://forums.aws.amazon.com/thread.jspa?threadID=56531 :

Amazon S3 will return an AccessDenied error when a nonexistent key is requested and the requester is not allowed to list the contents of the bucket.



如果您是第一次推送,该文件夹可能不存在,我猜您需要 ListBucket获得正确的父目录权限 NoSuchKey回复。尝试将第一条语句更改为:
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::<mybucket>/*"]
}

我也注意到 jgit push s3 refs/heads/master工作时间 jgit push s3 master没有。

对 future 的人:如果您只想为自己的用户设置一个 git repos 存储桶,那么以下安全策略似乎就足够了:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::<bucketname>"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::<bucketname>/*"
]
}
]
}

关于amazon-s3 - 用于访问 S3 上的 jgit 的 IAM 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28117233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com