Ho creato con successo un utente, le credenziali e un bucket.
Ora devo concedere l'accesso al bucket a questo utente.È possibile ottenere l'ID utente canonico dagli utenti AWS IAM, dall'API .NET?
C'è un modo per ottenere questo valore di CanonicalUser dal codice?
L'oggetto utente IAM fornisce solo i valori ARN, Path, UserId e UserName, ma nessuno di questi è valido per la concessione.
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]"
}
);
}
ho finito per mettere la politica sull'utente IAM. Questo documento di policy sta specificando agli utenti l'accesso al bucket. (http://docs.aws.amazon.com/IAM/latest/UserGuide/PolicyVariables.html) – KTW