我希望为所有用户获取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