我应该授予什么 aws 权限才能访问另一个 s3 存储桶
what aws permission I should give to acess other s3 buckets
在本文档 (https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html) 的 linux
选项卡中,AWS 共享了 s3 存储桶以下载最新版本的 aws-iam-authenticator
这个link在新版本发布时不断变化,但是桶名amazon-eks
从未改变。
curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/aws-iam-authenticator
没有aws API权限你无法通过编程方式检测到这个文件夹中有什么新版本,如果我直接通过浏览器访问:https://amazon-eks.s3-us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux
所以我必须使用我自己的 AWS 访问密钥,这是允许的。
aws s3 ls s3://amazon-eks/1.21.2/2021-07-05/bin/linux/amd64/
2021-07-15 08:56:11 35290752 aws-iam-authenticator
2021-07-15 08:56:31 55 aws-iam-authenticator.md5
2021-07-15 08:56:31 63 aws-iam-authenticator.sha1
2021-07-15 08:56:31 87 aws-iam-authenticator.sha256
2021-07-15 08:56:31 1865035 cni-amd64-v0.6.0.tgz
2021-07-15 08:56:36 54 cni-amd64-v0.6.0.tgz.md5
2021-07-15 08:56:36 62 cni-amd64-v0.6.0.tgz.sha1
2021-07-15 08:56:36 86 cni-amd64-v0.6.0.tgz.sha256
2021-07-15 08:56:36 36878412 cni-plugins-linux-amd64-v0.8.6.tgz
2021-07-15 08:57:09 68 cni-plugins-linux-amd64-v0.8.6.tgz.md5
2021-07-15 08:57:09 76 cni-plugins-linux-amd64-v0.8.6.tgz.sha1
2021-07-15 08:57:09 100 cni-plugins-linux-amd64-v0.8.6.tgz.sha256
2021-07-15 08:57:09 43122688 kube-proxy
2021-07-15 08:57:43 44 kube-proxy.md5
2021-07-15 08:57:43 52 kube-proxy.sha1
2021-07-15 08:57:43 76 kube-proxy.sha256
2021-07-15 08:57:43 46403584 kubectl
2021-07-15 08:58:23 41 kubectl.md5
2021-07-15 08:58:23 49 kubectl.sha1
2021-07-15 08:58:23 73 kubectl.sha256
2021-07-15 08:58:23 118197040 kubelet
2021-07-15 08:59:44 41 kubelet.md5
2021-07-15 08:59:44 49 kubelet.sha1
2021-07-15 08:59:44 73 kubelet.sha256
现在我的问题是,我如何设置一个AWS IAM用户只有Programmatic access
,它不能访问我aws账户中的任何资源,但允许列出public/private中的内容s3 存储桶?
我需要将此 IAM 用户的访问密钥用于 public CICD 管道构建作业,不想冒险公开我自己的 aws 帐户中的资源。
更新
这是该用户的内联策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::amazon-eks/*"
}
]
}
您似乎想在不使用凭据的情况下列出 amazon-eks
存储桶的内容。
这可以通过使用 --no-signed-request
选项来完成:
aws s3 ls s3://amazon-eks/1.21.2/2021-07-05/bin/linux/amd64/ --no-sign-request
这避免了提供 IAM 凭据的需要。
我终于弄清楚了 IAM 用户的权限,但显然@John Rotenstein 的解决方案是更好的方法。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::amazon-eks/*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::amazon-eks"
}
]
}
有了上面的权限,我可以列出s3 bucket中的内容amazon-eks
而不需要我自己的aws账户的权限。
在本文档 (https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html) 的 linux
选项卡中,AWS 共享了 s3 存储桶以下载最新版本的 aws-iam-authenticator
这个link在新版本发布时不断变化,但是桶名amazon-eks
从未改变。
curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/aws-iam-authenticator
没有aws API权限你无法通过编程方式检测到这个文件夹中有什么新版本,如果我直接通过浏览器访问:https://amazon-eks.s3-us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux
所以我必须使用我自己的 AWS 访问密钥,这是允许的。
aws s3 ls s3://amazon-eks/1.21.2/2021-07-05/bin/linux/amd64/
2021-07-15 08:56:11 35290752 aws-iam-authenticator
2021-07-15 08:56:31 55 aws-iam-authenticator.md5
2021-07-15 08:56:31 63 aws-iam-authenticator.sha1
2021-07-15 08:56:31 87 aws-iam-authenticator.sha256
2021-07-15 08:56:31 1865035 cni-amd64-v0.6.0.tgz
2021-07-15 08:56:36 54 cni-amd64-v0.6.0.tgz.md5
2021-07-15 08:56:36 62 cni-amd64-v0.6.0.tgz.sha1
2021-07-15 08:56:36 86 cni-amd64-v0.6.0.tgz.sha256
2021-07-15 08:56:36 36878412 cni-plugins-linux-amd64-v0.8.6.tgz
2021-07-15 08:57:09 68 cni-plugins-linux-amd64-v0.8.6.tgz.md5
2021-07-15 08:57:09 76 cni-plugins-linux-amd64-v0.8.6.tgz.sha1
2021-07-15 08:57:09 100 cni-plugins-linux-amd64-v0.8.6.tgz.sha256
2021-07-15 08:57:09 43122688 kube-proxy
2021-07-15 08:57:43 44 kube-proxy.md5
2021-07-15 08:57:43 52 kube-proxy.sha1
2021-07-15 08:57:43 76 kube-proxy.sha256
2021-07-15 08:57:43 46403584 kubectl
2021-07-15 08:58:23 41 kubectl.md5
2021-07-15 08:58:23 49 kubectl.sha1
2021-07-15 08:58:23 73 kubectl.sha256
2021-07-15 08:58:23 118197040 kubelet
2021-07-15 08:59:44 41 kubelet.md5
2021-07-15 08:59:44 49 kubelet.sha1
2021-07-15 08:59:44 73 kubelet.sha256
现在我的问题是,我如何设置一个AWS IAM用户只有Programmatic access
,它不能访问我aws账户中的任何资源,但允许列出public/private中的内容s3 存储桶?
我需要将此 IAM 用户的访问密钥用于 public CICD 管道构建作业,不想冒险公开我自己的 aws 帐户中的资源。
更新
这是该用户的内联策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::amazon-eks/*"
}
]
}
您似乎想在不使用凭据的情况下列出 amazon-eks
存储桶的内容。
这可以通过使用 --no-signed-request
选项来完成:
aws s3 ls s3://amazon-eks/1.21.2/2021-07-05/bin/linux/amd64/ --no-sign-request
这避免了提供 IAM 凭据的需要。
我终于弄清楚了 IAM 用户的权限,但显然@John Rotenstein 的解决方案是更好的方法。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::amazon-eks/*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::amazon-eks"
}
]
}
有了上面的权限,我可以列出s3 bucket中的内容amazon-eks
而不需要我自己的aws账户的权限。