
Ich probiere das CloudBerry Drive-Tool aus, um S3-Buckets als mein Netzwerklaufwerk anzuhängen. Ich habe einen Bucket und 2 Ordner darin, wobei ich den Bucket-Namen als Umgebung und 2 Ordner als Dev und Prod annehme. Ich habe 3 Benutzergruppen, die dies verwenden würden – Admin, Dev und Prod. Admin – Muss Lese-/Schreibberechtigung für beide Ordner haben. Dev – Sollte nur Schreibzugriff auf den Dev-Ordner haben. Prod – Sollte Lesezugriff auf den Dev-Ordner und Schreibzugriff auf den Prod-Ordner haben.
Ich bin jedoch mit den IAM-Berechtigungen verwirrt. Der Administrator funktioniert einwandfrei mit den S3-Vollzugriffsberechtigungen. Aber die anderen beiden Konten funktionieren nicht einwandfrei.
Entwickler
{
"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/*"
}
]
}
Damit sollte ich in der Lage sein, in den Dev-Ordner zu schreiben und zu schreiben, was mir aber nicht gelingt. Mit CloudBerry Drive kann ich eine Datei kopieren und einfügen, aber sie wird nicht auf S3 hochgeladen. Außerdem werden die Dateien in S3 hier aufgelistet (was erforderlich ist), aber ich kann nicht darauf zugreifen (Fehler angehängt).
Prod
{
"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"
}
]
}
Damit sollte ich in der Lage sein, in den Produktionsordner zu schreiben und zu schreiben, was mir aber nicht gelingt. Mit CloudBerry Drive kann ich eine Datei kopieren und einfügen, aber sie wird nicht auf S3 hochgeladen.
{
"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/*"
]
}
}
}
]
}
Die Dateien in S3 werden hier aufgelistet (was erforderlich ist), aber es kann nicht darauf zugegriffen werden (Fehler beigefügt).
Ich hoffe, meine Anforderungen sind klar: 1. Der Entwicklerbenutzer darf nur Lese-/Schreibzugriff auf den Entwicklerordner haben. 2. Der Produktionsbenutzer darf Lese-/Schreibzugriff auf den Produktionsordner und Schreibzugriff auf den Entwicklerordner haben. 3. All dies wird mit CloudBerry Drive für S3 erledigt.
Hinweis: Ich habe viel gegoogelt und fast alles ausprobiert, darunter auch einige Richtlinien, die zeigen, wie man Schreibberechtigung für einen bestimmten Benutzerordner erteilt.
Antwort1
Entschuldigen Sie die verspätete Antwort. Aber ändern Sie die Bedingung in meinem Skript folgendermaßen:
"Condition":{"StringLike":{"s3:prefix":["home/David/*"]}}
Danke an ceejayoz, der mich auf diesen Fehler aufmerksam gemacht hat.