Amazon web services 允许IAM用户访问单个s3存储桶

Amazon web services 允许IAM用户访问单个s3存储桶,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我正在使用内联策略为IAM用户授予对s3存储桶的访问权限 { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1513073615000", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [

我正在使用内联策略为IAM用户授予对s3存储桶的访问权限

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1513073615000",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::newput-test"
            ]
        }
    ]
}
但在扩展s3浏览器上,当我使用特定IAM用户的访问密钥id和秘密访问密钥时,我的bucket没有列出。但当我传入*资源时,它工作正常

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1513073615000",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
但问题是它将所有s3存储桶的访问权授予IAM用户。
但我只想给访问权限一个bucket任何人都知道如何实现这一点。

试试这样的方法

  {
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::mys3bucket",
                "arn:aws:s3:::mys3bucket/*"
            ]
        }
    ]
}
这里已经解释过了。

试试这样的方法

  {
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::mys3bucket",
                "arn:aws:s3:::mys3bucket/*"
            ]
        }
    ]
}
这里已经解释过了。

不起作用给我以下错误此策略包含以下错误:已禁止字段主体有关IAM策略语法的详细信息,请参阅AWS IAM策略。我认为这可能会对您有所帮助。我已经更新了答案,这可能会对其他正在寻找类似问题的人有所帮助。好的,谢谢sanath,主要的一点是要记住,这里我们需要列出所有的bucket,这是必需的,我们对单个bucket给予许可,列出所有的bucket是必需的,如果不列出所有的,我们就无法实现这一点。@shubhamkatariya这是错误的。您可以在不列出权限的情况下授予bucket权限,有时这样做是正确的。但有些客户不喜欢这样,并以错误回应。大多数成熟的客户端都允许您使用此权限,但您需要直接提供bucket名称。此策略不起作用,出现以下错误此策略包含以下错误:已禁止字段主体以获取有关IAM策略语法的详细信息,请参阅AWS IAM政策。我认为这可能会对您有所帮助。我已经更新了答案,这可能会对其他正在寻找类似问题的人有所帮助。好的,谢谢sanath,主要的一点是要记住,这里我们需要列出所有的bucket,这是必需的,我们对单个bucket给予许可,列出所有的bucket是必需的,如果不列出所有的,我们就无法实现这一点。@shubhamkatariya这是错误的。您可以在不列出权限的情况下授予bucket权限,有时这样做是正确的。但有些客户不喜欢这样,并以错误回应。大多数成熟的客户端都允许您使用此权限,但您需要直接提供bucket名称。