
CloudBerry Drive ツールを試して、S3 バケットをネットワーク ドライブとして接続しています。バケットとその中に 2 つのフォルダーがあり、バケット名は environment、2 つのフォルダーは dev と prod と想定しています。これを使用するユーザーは 3 セットあります (Admin、Dev、Prod)。Admin には、両方のフォルダーへの 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. これらはすべて、S3 用の CloudBerry Drive を使用して実行されます。
注: 特定のユーザー フォルダーへの書き込み権限を付与する方法を示すポリシーなど、Google でいろいろ調べて、ほとんどすべてを試しました。
答え1
回答が遅れて申し訳ありません。ただし、私のスクリプトでは、条件を次のように変更します。
"Condition":{"StringLike":{"s3:prefix":["home/David/*"]}}
このエラーを指摘してくれたceejayozに感謝します。