示例#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
        private static void CreateAccessKey(String User)
        {
            if (String.IsNullOrEmpty(Token))
            {
                stsClient = new AmazonIdentityManagementServiceClient(AccessKeyId, SecretKey, iamconfig);
            }
            else
            {
                stsClient = new AmazonIdentityManagementServiceClient(AccessKeyId, SecretKey, Token, iamconfig);
            }

            try
            {
                CreateAccessKeyRequest accesskeyReq = new CreateAccessKeyRequest();
                if (!String.IsNullOrEmpty(User))
                {
                    accesskeyReq.UserName = User;
                }
                CreateAccessKeyResponse response = stsClient.CreateAccessKey(accesskeyReq);
                Console.WriteLine("Access keys :{0}, Secret Key: {1}", response.AccessKey.AccessKeyId,
                                  response.AccessKey.SecretAccessKey);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error occured while creating user. " + ex.ToString());
            }
        }
示例#3
0
        public void IdentityManagementServiceCreateAccessKey()
        {
            #region 1fbb3211-4cf2-41db-8c20-ba58d9f5802d

            var client   = new AmazonIdentityManagementServiceClient();
            var response = client.CreateAccessKey(new CreateAccessKeyRequest
            {
                UserName = "******"
            });

            AccessKey accessKey = response.AccessKey;

            #endregion
        }
示例#4
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));
            }
        }
示例#5
0
 public static void CreateAccessKey()
 {
     try
     {
         var iamClient = new AmazonIdentityManagementServiceClient();
         // Create an access key for the IAM user that can be used by the SDK
         var accessKey = iamClient.CreateAccessKey(new CreateAccessKeyRequest
         {
             // Use the user we created in the CreateUser example
             UserName = "******"
         }).AccessKey;
     }
     catch (LimitExceededException e)
     {
         Console.WriteLine(e.Message);
     }
 }
示例#6
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();
        }