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



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

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

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

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'}}

确定帐户的当前策略。如果你想确保所有用户都遵守你的策略,请确保你的密码定期过期,那么用户将被迫创建一个符合你的策略的新密码。

您可以尝试使用Ansible的iam_policy模块,该模块旨在管理用户、组和角色的IAM策略。它允许上载或删除IAM用户、组或角色的IAM策略。

iam_policy.py文件中,您可以找到一些boto.iam代码示例。例如

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

相关内容

  • 没有找到相关文章