如何使用Boto3在AWS中检查IAM密码策略?

时间:2016-04-06 04:50:32

标签: amazon-web-services amazon-iam boto3

我希望获得所有用户的所有IAM用户密码策略。

如何使用Boto3检查AWS账户中所有用户是否启用了IAM密码策略?

2 个答案:

答案 0 :(得分:1)

密码策略是在帐户级别设置的,而不是针对个别用户。你可以使用这样的东西:

In [1]: import boto3
In [2]: iam = boto3.client('iam')
In [3]: iam.get_account_password_policy()
Out[3]: 
{u'PasswordPolicy': {u'AllowUsersToChangePassword': True,
  u'ExpirePasswords': False,
  u'MinimumPasswordLength': 8,
  u'RequireLowercaseCharacters': True,
  u'RequireNumbers': True,
  u'RequireSymbols': True,
  u'RequireUppercaseCharacters': True},
 'ResponseMetadata': {'HTTPStatusCode': 200,
 'RequestId': 'f9a8fc8e-fbfc-11e5-992f-df20f934a99a'}}

确定帐户的当前政策。如果您想确保所有用户都遵守您的策略,请确保定期使密码失效,然后用户将被迫创建符合您的策略的新密码。

答案 1 :(得分:0)

您可以尝试使用旨在管理用户,组和角色的IAM策略的iam_policy module for Ansible。它允许为IAM用户,组或角色上传或删除IAM策略。

iam_policy.py file中,您可以找到一些boto.iam代码示例。 E.g。

current_policies = [cp for cp in iam.list_role_policies(name).list_role_policies_result.policy_names]
for pol in current_policies:
    if urllib.unquote(iam.get_role_policy(name, pol).get_role_policy_result.policy_document) == pdoc:
        policy_match = True
        if policy_match:
            # msg = ("The policy document you specified already exists "
            #        "under the name %s." % pol)
            pass