您是否可以仅使用访问S3子文件夹而不访问根文件夹的凭据来设置从S3存储桶子文件夹到GCS存储桶的传输?

我正在寻找一个传输作业,以获取存储在S3存储桶中的文件并将它们加载到GCS存储桶中。我拥有的凭据可以访问包含我需要的文件的文件夹,但不能访问更高级别的文件夹。

当我尝试使用“ Amazon S3存储桶”下的S3存储桶名称并填写了访问密钥ID和秘密访问密钥来设置传输作业时,由于我的凭证限制,访问被拒绝了。但是,如果我将额外的路径信息添加为前缀项(例如'Production / FTP / CompanyName'),并且确实可以访问此文件夹,则访问权限会被 still 拒绝。

似乎我无法克服我无权访问根目录这一事实。有什么办法解决吗?

jimeidaxuecy 回答:您是否可以仅使用访问S3子文件夹而不访问根文件夹的凭据来设置从S3存储桶子文件夹到GCS存储桶的传输?

保罗

您的IAM角色很可能缺少s3:ListBucket权限。您可以将您的IAM角色更新为具有s3:ListBuckets3:GetBucketLocation并重试吗?

,

根据文档link

  

Storage Transfer Service使用   项目-[$ PROJECT_NUMBER] @ storage-transfer-service.iam.gserviceaccount.com   服务帐户以从Cloud Storage源存储桶中移动数据。

     

服务帐户必须对源具有以下权限   桶:

     

storage.buckets.get允许服务帐户获取以下位置:   桶。始终需要。

     

storage.objects.list允许服务帐户列出对象中的对象。   桶。始终需要。

     

storage.objects.get允许服务帐户读取对象中的对象。   桶。始终需要。

     

storage.objects.delete允许服务帐户删除其中的对象   桶。如果设置deleteObjectsFromSourceAfterTransfer,则为必需   真实。

     

roles / storage.objectViewer和role / storage.legacyBucketReader   角色一起包含始终需要的权限。的   role / storage.legacyBucketWriter角色包含   storage.objects.delete权限。该服务帐户过去曾   必须为执行转移的人员分配所需的角色。

您必须在AWS存储桶上设置此权限。

,

在 AWS 上的权限策略应如下所示,以防您想授予对子文件夹的访问权限。

{
    "Version": "2012-10-17","Statement": [
        {
            "Effect": "Allow","Action": [
                "s3:GetBucketLocation"
            ],"Resource": [
                "arn:aws:s3:::<bucketname>","arn:aws:s3:::<bucketname>/*"
            ]
        },{
            "Effect": "Allow","Action": [
                "s3:List*","s3:Get*"
            ],"Resource": "arn:aws:s3:::<bucketname>","Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "<subfolder>/*"
                    ]
                }
            }
        },"Resource": [
                "arn:aws:s3:::<bucketname>/<subfolder>","arn:aws:s3:::<bucketname>/<subfolder>/*"
            ],"Condition": {}
        }
    ]
}
本文链接:https://www.f2er.com/3117484.html

大家都在问