Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services S3 IAM策略在模拟器中起作用,但在现实生活中不起作用_Amazon Web Services_Amazon S3_Amazon Iam - Fatal编程技术网

Amazon web services S3 IAM策略在模拟器中起作用,但在现实生活中不起作用

Amazon web services S3 IAM策略在模拟器中起作用,但在现实生活中不起作用,amazon-web-services,amazon-s3,amazon-iam,Amazon Web Services,Amazon S3,Amazon Iam,我有一个客户,我希望能够上传文件,但不能在我的S3存储桶中自由导航。我已为他们创建了一个IAM用户帐户,并应用了以下策略: { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1416387009000", "Effect": "Allow", "Action": [ "s3:ListAllMyBuck

我有一个客户,我希望能够上传文件,但不能在我的S3存储桶中自由导航。我已为他们创建了一个IAM用户帐户,并应用了以下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1416387009000",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "Stmt1416387127000",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::progress"
            ]
        },
        {
            "Sid": "Stmt1416387056000",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::progress/*"
            ]
        }
    ]
}
有三种说法:

  • 能够列出所有bucket(否则他们登录时在S3控制台中看不到任何内容)
  • 能够列出进度存储桶的内容
  • 将对象放入进度桶中的能力
  • 用户可以使用用户名和密码(以及我的自定义帐户URL,即)登录AWS控制台。他们可以转到控制台的S3部分,查看我所有存储桶的列表。但是,如果单击“进度”,则只会收到以下错误消息:

    对不起!你被拒绝这样做

    我已经使用IAM策略模拟器检查了用户是否对存储桶的ARN(
    ARN:aws:s3:::progress
    )具有
    ListBucket
    权限,并且策略模拟器说应该允许该用户

    我已经注销并再次作为目标用户登录,以防策略只在注销时刷新,但仍然没有乐趣


    我做错了什么?我错过了什么吗?

    我猜,当使用AWS控制台时,在列出存储桶中的对象之前,会进行另一次调用以获取存储桶位置,而用户没有进行该调用的权限。您还需要为帐户授予访问
    GetBucketLocation
    的权限。来自

    当您使用AmazonS3控制台时,请注意,当您单击一个bucket时, 控制台首先发送GET Bucket location请求以查找 部署铲斗的AWS区域。然后控制台使用 要发送GET bucket的bucket的特定于区域的端点(列表 对象)请求。因此,如果用户要使用控制台, 您必须为s3:GetBucketLocation操作授予权限,如图所示 在以下政策声明中:

    {
    “Sid”:“RequiredByS3Console”,
    “操作”:[“s3:GetBucketLocation”],
    “效果”:“允许”,
    “资源”:[“arn:aws:s3:::*”]
    }
    
    我的猜测是,当使用AWS控制台时,会进行另一次调用,以获取bucket位置,然后才能列出该bucket中的对象,而用户没有进行该调用的权限。您还需要为帐户授予访问
    GetBucketLocation
    的权限。来自

    当您使用AmazonS3控制台时,请注意,当您单击一个bucket时, 控制台首先发送GET Bucket location请求以查找 部署铲斗的AWS区域。然后控制台使用 要发送GET bucket的bucket的特定于区域的端点(列表 对象)请求。因此,如果用户要使用控制台, 您必须为s3:GetBucketLocation操作授予权限,如图所示 在以下政策声明中:

    {
    “Sid”:“RequiredByS3Console”,
    “操作”:[“s3:GetBucketLocation”],
    “效果”:“允许”,
    “资源”:[“arn:aws:s3:::*”]
    }
    
    我的猜测是,当使用AWS控制台时,会进行另一次调用,以获取bucket位置,然后才能列出该bucket中的对象,而用户没有进行该调用的权限。您还需要为帐户授予访问
    GetBucketLocation
    的权限。来自

    当您使用AmazonS3控制台时,请注意,当您单击一个bucket时, 控制台首先发送GET Bucket location请求以查找 部署铲斗的AWS区域。然后控制台使用 要发送GET bucket的bucket的特定于区域的端点(列表 对象)请求。因此,如果用户要使用控制台, 您必须为s3:GetBucketLocation操作授予权限,如图所示 在以下政策声明中:

    {
    “Sid”:“RequiredByS3Console”,
    “操作”:[“s3:GetBucketLocation”],
    “效果”:“允许”,
    “资源”:[“arn:aws:s3:::*”]
    }
    
    我的猜测是,当使用AWS控制台时,会进行另一次调用,以获取bucket位置,然后才能列出该bucket中的对象,而用户没有进行该调用的权限。您还需要为帐户授予访问
    GetBucketLocation
    的权限。来自

    当您使用AmazonS3控制台时,请注意,当您单击一个bucket时, 控制台首先发送GET Bucket location请求以查找 部署铲斗的AWS区域。然后控制台使用 要发送GET bucket的bucket的特定于区域的端点(列表 对象)请求。因此,如果用户要使用控制台, 您必须为s3:GetBucketLocation操作授予权限,如图所示 在以下政策声明中:

    {
    “Sid”:“RequiredByS3Console”,
    “操作”:[“s3:GetBucketLocation”],
    “效果”:“允许”,
    “资源”:[“arn:aws:s3:::*”]
    }
    
    我没有看到上面指定的
    主体
    ()-这些策略是否附加到特定用户?是。这是附加到IAM用户的策略。我没有看到上面指定的
    Principal
    ()-这些策略是否附加到特定用户?是。这是附加到IAM用户的策略。我没有看到上面指定的
    Principal
    ()-这些策略是否附加到特定用户?是。这是附加到IAM用户的策略。我没有看到上面指定的
    Principal
    ()-这些策略是否附加到特定用户?是。这是附加到IAM用户的策略。我测试了该场景,可以确认该bucket上需要s3:GetBucketLocation权限。我测试了该场景,可以确认该bucket上需要s3:GetBucketLocation权限。我测试了该场景,可以确认该bucket上需要s3:GetBucketLocation权限我测试了这个场景,可以确认s3:GetBucketLocation权限是bucket所必需的。