Ist es möglich, die kanonischen Benutzer-id von AWS IAM-Benutzer, von die .NET-API?
Habe ich erfolgreich einen Benutzer erstellt, die Anmeldeinformationen und einen Eimer.
Jetzt muss ich gewähren Eimer Zugriff auf diesen Benutzer.
Gibt es eine Möglichkeit, diese zu bekommen CanonicalUser Wert von code?
Die IAM-Benutzer-Objekt bietet nur ARN, Pfad, Benutzer-id und UserName Werte, aber keines dieser gelten für die Erteilung.
using (var s3 = new Amazon.S3.AmazonS3Client("[user_key]", "[secret_user_key]", RegionEndpoint.GetBySystemName("eu-west-1")))
{
var response = s3.GetACL("[bucket_id]");
var acl = response.AccessControlList;
acl.AddGrant(
new S3Grantee() {
CanonicalUser = **???**
},
new S3Permission(S3Permission.FULL_CONTROL)
);
s3.PutACL(
new PutACLRequest() {
AccessControlList = acl,
BucketName = "[bucket_id]"
}
);
}
- Ich landete setzen die Politik auf die IAM-Benutzer. Diese policydocument ist die Angabe, die Benutzern den Zugriff auf den bucket. (docs.aws.amazon.com/IAM/latest/UserGuide/PolicyVariables.html)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie leicht CanonicalUser-ID mit ListAllMyBuckets API-Aufruf [1] (s3:ListAllMyBuckets Genehmigung erforderlich ist):
Im AWS SDK für .NET, verwenden Sie code wie folgt [2]:
In AWSJavaSDK, die Sie verwenden können, AmazonS3.getS3AccountOwner wrapper-Methode [3].
Nein, es ist nicht möglich, die kanonischen Benutzer-id aus code - Sie getroffen habe, ein wenig seltsam und wahrscheinlich legacy Aspekt aufgrund der unterschiedlichen Art und Weise zu verwalten von Zugriffsberechtigungen für S3-Ressourcen finden Sie auf der AWS-team die Antwort auf Wie finden Sie heraus, Kanonische ID für einen IAM-Benutzer?:
Vielleicht möchten zu überdenken, die Verwendung von mehr vielseitig S3-bucket-Richtlinien statt (siehe unten) - allerdings, wenn Sie haben Zugriff auf das Konto, root-Anmeldeinformationen, die Sie vielleicht finden die kanonischen Benutzer-ID in Verbindung mit Ihrem AWS-Konto wie in Die Angabe eines Auftraggebers in einer Richtlinie (wohlgemerkt, das funktioniert nicht mit IAM-Benutzer-Anmeldeinformationen):
Werde ich erneut betonen, dass die AWS empfiehlt ausdrücklich nur die Verwendung von IAM-Benutzern in diesen Tagen, siehe z.B. Root-Konto-Anmeldeinformationen vs. IAM-Benutzer-Anmeldeinformationen:
Dieser kanonischen Benutzer-id Voraussetzung für die S3 ist eine seltene Ausnahme, und als ich sagte, wahrscheinlich als Erbe Artefakt aufgrund der S3-ACL-Schicht vor IAM, daher am besten vermieden werden, wenn möglich.