Вы говорите о пользователе, пользователь в вашем приложении или пользователь в AWS ACL?
Если это в приложении, вы можете использовать временный доступ, создав предварительно назначенный URL для обслуживания, пример кода на C #:
Amazon.S3.Model.GetPreSignedUrlRequest req = new Amazon.S3.Model.GetPreSignedUrlRequest();
req.WithBucketName(Helper.AppConfig.AWS_Bucket)
.WithKey(key)
.WithExpires(expiration)
.WithVerb(Amazon.S3.Model.HttpVerb.GET);
return S3Helper.S3ClientInstance.GetPreSignedURL(req);
Если вы добавили пользователя в AWS, вы можете установить разрешение для данного пользователя на уровне сегмента.