특정 폴더에 대한 RW에 대한 IAM 사용자 정책

특정 폴더에 대한 RW에 대한 IAM 사용자 정책

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에게 감사드립니다.

관련 정보