
S3 버킷을 네트워크 드라이브로 연결하기 위해 CloudBerry Drive 도구를 사용해 보고 있습니다. 버킷 이름을 환경으로, 2개의 폴더를 dev 및 prod로 가정하고 그 안에 버킷과 2개의 폴더가 있습니다. 이것을 사용할 사용자 세트는 Admin, Dev 및 Prod입니다. 관리자 - 두 폴더 모두에 대한 R/W 권한이 있어야 합니다. Dev - dev 폴더 Prod에 대해서만 쓰기 액세스 권한이 있어야 합니다. - dev 폴더에 대한 읽기 액세스 권한과 prod 폴더에 대한 쓰기 액세스 권한이 있어야 합니다.
그러나 IAM 권한과 혼동됩니다. 관리자는 S3 전체 액세스 권한으로 잘 작동합니다. 하지만 나머지 2개의 계정은 제대로 작동하지 않습니다.
데브
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:DeleteObjectVersion",
"s3:RestoreObject",
"s3:PutObjectVersionTagging",
"s3:PutObjectTagging",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::environment/dev/*"
}
]
}
이를 통해 dev 폴더에 대한 R/W를 수행할 수 있어야 하는데, 이는 수행할 수 없습니다. CloudBerry Drive를 사용하면 파일을 복사하여 붙여 넣을 수 있지만 S3에 업로드되지 않습니다. 또한 S3의 파일이 여기에 나열되어 있지만(필수) 동일한 파일에 액세스할 수 없습니다(오류 첨부).
찌르다
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:DeleteObjectTagging",
"s3:DeleteObjectVersion",
"s3:GetObjectVersionTagging",
"s3:ReplicateTags",
"s3:RestoreObject",
"s3:PutObjectVersionTagging",
"s3:DeleteObjectVersionTagging",
"s3:ListMultipartUploadParts",
"s3:ReplicateObject",
"s3:GetObjectVersionTorrent",
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:ObjectOwnerOverrideToBucketOwner",
"s3:GetObjectTorrent",
"s3:AbortMultipartUpload",
"s3:GetObjectVersionAcl",
"s3:GetObjectTagging",
"s3:PutObjectTagging",
"s3:GetObjectVersionForReplication",
"s3:DeleteObject",
"s3:ReplicateDelete",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::environment/Prod"
}
]
}
이를 통해 나는 할 수 없는 prod 폴더에 대한 R/W를 수행할 수 있어야 합니다. CloudBerry Drive를 사용하면 파일을 복사하여 붙여 넣을 수 있지만 S3에 업로드되지 않습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:GetObjectVersionTorrent",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectTorrent",
"s3:GetObjectVersionTagging",
"s3:GetObjectVersionAcl",
"s3:GetObjectTagging",
"s3:GetObjectVersionForReplication",
"s3:GetObjectVersion",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::environment"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"dev/*"
]
}
}
}
]
}
S3의 파일이 여기에 나열되어 있지만(필수) 동일한 파일에 액세스할 수 없습니다(오류 첨부).
내 요구 사항이 명확해지기를 바랍니다. 1. dev 사용자는 dev 폴더에만 R/W 액세스 권한을 갖습니다. 2. prod 사용자는 prod 폴더에 대한 R/W 액세스 권한과 dev 폴더에 대한 R 액세스 권한을 갖습니다. 3. 이 모든 작업은 CloudBerry Drive를 사용하여 수행됩니다. S3의 경우.
참고: 특정 사용자 폴더에 쓰기 권한을 제공하는 방법을 보여주는 일부 정책을 포함하여 Google을 많이 검색하고 거의 모든 것을 시도했습니다.
답변1
답변이 늦어져서 죄송합니다. 하지만 내 스크립트에서는 조건을 다음과 같이 변경합니다.
"Condition":{"StringLike":{"s3:prefix":["home/David/*"]}}
이 오류를 알려준 ceejayoz에게 감사드립니다.