示例#1
0
文件: S3IAM.cs 项目: zed9h/duplicati
        private Dictionary <string, string> CreateUnprivilegedUser(string awsid, string awskey, string path)
        {
            var now        = Library.Utility.Utility.SerializeDateTime(DateTime.Now);
            var username   = string.Format("duplicati-autocreated-backup-user-{0}", now);
            var policyname = string.Format("duplicati-autocreated-policy-{0}", now);
            var policydoc  = GeneratePolicyDoc(path);

            var cl   = new AmazonIdentityManagementServiceClient(awsid, awskey);
            var user = cl.CreateUser(new CreateUserRequest(username)).User;

            cl.PutUserPolicy(new PutUserPolicyRequest(
                                 user.UserName,
                                 policyname,
                                 policydoc
                                 ));
            var key = cl.CreateAccessKey(new CreateAccessKeyRequest()
            {
                UserName = user.UserName
            }).AccessKey;

            var dict = new Dictionary <string, string>();

            dict["accessid"]  = key.AccessKeyId;
            dict["secretkey"] = key.SecretAccessKey;
            dict["username"]  = key.UserName;

            return(dict);
        }
示例#2
0
        public void SetUp()
        {
            _awsConfiguration = new AwsConfiguration
            {
                AwsEndpoint = TestConfiguration.AwsEndpoint,
                Credentials = new TestSuiteCredentials()
            };

            _iamClient = new AmazonIdentityManagementServiceClient(
                new AmazonIdentityManagementServiceConfig
            {
                RegionEndpoint = _awsConfiguration.AwsEndpoint,
                ProxyHost      = _awsConfiguration.ProxyHost,
                ProxyPort      = _awsConfiguration.ProxyPort
            });

            var user = _iamClient.CreateUser(new CreateUserRequest
            {
                UserName = _userName
            }).User;

            _roleToAssume = _iamClient.CreateRoleToAssume(user);
            _awsConfiguration.RoleName = _roleToAssume.Arn;

            _s3Client = new AmazonS3Client(new AmazonS3Config {
                RegionEndpoint = _awsConfiguration.AwsEndpoint
            });

            DeletePreviousTestStack();
        }
示例#3
0
        public static User CreateReadOnlyUser()
        {
            var iamClient = new AmazonIdentityManagementServiceClient();

            try
            {
                // Create the IAM user
                var readOnlyUser = iamClient.CreateUser(new CreateUserRequest
                {
                    UserName = "******"
                }).User;

                // Assign the read only policy to the new user
                iamClient.PutUserPolicy(new PutUserPolicyRequest
                {
                    UserName       = readOnlyUser.UserName,
                    PolicyName     = "S3ReadOnlyAccess",
                    PolicyDocument = S3_READONLY_POLICY
                });
                return(readOnlyUser);
            }
            catch (EntityAlreadyExistsException e)
            {
                Console.WriteLine(e.Message);
                var request = new GetUserRequest()
                {
                    UserName = "******"
                };

                return(iamClient.GetUser(request).User);
            }
        }
示例#4
0
        private static void CreateUser(String User, String Path)
        {
            if (String.IsNullOrEmpty(Token))
            {
                stsClient = new AmazonIdentityManagementServiceClient(AccessKeyId, SecretKey, iamconfig);
            }
            else
            {
                stsClient = new AmazonIdentityManagementServiceClient(AccessKeyId, SecretKey, Token, iamconfig);
            }

            CreateUserRequest req = new CreateUserRequest(User);

            if (!String.IsNullOrEmpty(Path))
            {
                req.Path = Path;
            }
            try
            {
                CreateUserResponse response = stsClient.CreateUser(req);
                Console.WriteLine("User created");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error occured while creating user. " + ex.ToString());
            }
        }
示例#5
0
        public static string CreateTestUser(AmazonIdentityManagementServiceClient client)
        {
            string username = "******" + DateTime.Now.Ticks;

            client.CreateUser(new CreateUserRequest()
            {
                UserName = username, Path = TEST_PATH
            });
            return(username);
        }
示例#6
0
        public void IdentityManagementServiceCreateUser()
        {
            #region eb15f90b-e5f5-4af8-a594-e4e82b181a62

            var client   = new AmazonIdentityManagementServiceClient();
            var response = client.CreateUser(new CreateUserRequest
            {
                UserName = "******"
            });

            User user = response.User;

            #endregion
        }
示例#7
0
        private static void CreateUser()
        {
            Console.WriteLine("** Create User **");
            var iamClient = new AmazonIdentityManagementServiceClient();
            var request   = new CreateUserRequest
            {
                UserName = "******",
                Path     = @"/IT/architecture/"
            };

            var response = iamClient.CreateUser(request);

            Console.WriteLine("User Created");
        }
示例#8
0
        public static BasicAWSCredentials CreateTestRoleAndUser(string roleName, string userName, string externalId)
        {
            var assumeRolePolicy = AssumeRolePolicyDocument.Replace("{AccountId}", UtilityMethods.AccountId);

            if (string.IsNullOrEmpty(externalId))
            {
                assumeRolePolicy = assumeRolePolicy.Replace("{Condition}", "");
            }
            else
            {
                assumeRolePolicy = assumeRolePolicy.Replace("{Condition}", AssumeRoleExternalIdCondition.Replace("{ExternalId}", externalId));
            }
            using (var iamClient = new AmazonIdentityManagementServiceClient())
            {
                var role = iamClient.CreateRole(new CreateRoleRequest
                {
                    RoleName = roleName,
                    AssumeRolePolicyDocument = assumeRolePolicy
                }).Role;

                iamClient.PutRolePolicy(new PutRolePolicyRequest
                {
                    RoleName       = role.RoleName,
                    PolicyName     = "allow-list-buckets",
                    PolicyDocument = AllowListBucketsRolePolicyDocument
                });

                var user = iamClient.CreateUser(new CreateUserRequest
                {
                    UserName = userName
                }).User;

                iamClient.PutUserPolicy(new PutUserPolicyRequest
                {
                    UserName       = user.UserName,
                    PolicyName     = "assume-policy-1",
                    PolicyDocument = AssumeRoleUserPolicyDocument
                });

                var accessKey = iamClient.CreateAccessKey(new CreateAccessKeyRequest
                {
                    UserName = userName
                }).AccessKey;

                return(new BasicAWSCredentials(accessKey.AccessKeyId, accessKey.SecretAccessKey));
            }
        }
示例#9
0
        public static void CreateDemoUser()
        {
            var client  = new AmazonIdentityManagementServiceClient();
            var request = new CreateUserRequest
            {
                UserName = "******"
            };

            try
            {
                var response = client.CreateUser(request);

                Console.WriteLine("User Name = '{0}', ARN = '{1}'",
                                  response.User.UserName, response.User.Arn);
            }
            catch (EntityAlreadyExistsException)
            {
                Console.WriteLine("User 'DemoUser' already exists.");
            }
        }
示例#10
0
// Button 2 - Create IAM User
        private void button2_Click(object sender, EventArgs e)
        {
            txtOutput.Text += "Creating IAM User: "******"\r\n";
            var iamClient2 = new AmazonIdentityManagementServiceClient();

            try
            {
                var readOnlyUser = iamClient2.CreateUser(new CreateUserRequest
                {
                    UserName = bucketName,
                }).User;
                txtOutput.Text += "IAM USER Created: " + bucketName + "\r\n";
            }
            catch (EntityAlreadyExistsException ex)
            {
                txtOutput.Text += ex.Message + "\r\n";
                var request = new GetUserRequest()
                {
                    UserName = bucketName
                };
            }
            try
            {
                txtOutput.Text += "Creating Access Key" + "\r\n";
                var iamClient1 = new AmazonIdentityManagementServiceClient();
                var accessKey  = iamClient1.CreateAccessKey(new CreateAccessKeyRequest
                {
                    UserName = bucketName
                }).AccessKey;
                txtOutput.Text += "Access Keys Generated:" + "\r\n";
                txtOutput.Text += accessKey.AccessKeyId + "\r\n";
                key1            = accessKey.AccessKeyId;
                txtOutput.Text += accessKey.SecretAccessKey + "\r\n";
                key2            = accessKey.SecretAccessKey;
            }
            catch (LimitExceededException ex)
            {
                txtOutput.Text += ex.Message;
            }
            txtOutput.ScrollToCaret();
        }