没有项目描述

PolicyTools的Python项目详细描述


政策工具

CircleCI

codecov

Requirements Status

摘要

这是用于使用aws iam策略的辅助工具的实用程序。

目前,它以编程方式确定aws组织的效果 Service Control Policy 在给定的用户策略上。

result=scp.effect_on(user_policy)printresult.denied_actions

用法

创建“所有IAM操作”集

# policies-gen.json.js is the content of https://awspolicygen.s3.amazonaws.com/js/policies.jswithopen('policies-gen.json.js')asfile_stream:all_actions_source_data=file_stream.read()

创建actionexpander实用程序。它只需将glob语句(例如s3:*)扩展为完全匹配的iam操作集。

policy_actions_expander=ActionExpander(PolicyGenActionsMasterList(all_actions_source_data))

创建用户策略和服务控制策略

user_policy=Policy("""{        "Version": "2012-10-17",        "Statement": [            {                "Sid": "AllowSts",                "Effect": "Allow",                "Resource": "*",                "Action": [                    "sqs:*"                ]            },            {                "Sid": "AllowEfs",                "Effect": "Allow",                "Resource": "*",                "Action": [                    "elastictranscoder:*"                ]            }        ]    }""",action_expander)scp=ServiceControlPolicy("""{            "Version": "2012-10-17",            "Statement": [                {                    "Sid": "AllowS3Read",                    "Effect": "Allow",                    "Resource": "*",                    "Action": [                        "sqs:Get*",                        "sqs:List*"                    ]                },                {                    "Sid": "AllowElasticTranscoderRead",                    "Effect": "Allow",                    "Resource": "*",                    "Action": [                        "elastictranscoder:Read*",                        "elastictranscoder:List*"                    ]                }            ]        }""",action_expander)

确定SCP对用户策略的影响

result=scp.effect_on(user_policy)printresult.denied_actions{'sqs:SetQueueAttributes','sqs:PurgeQueue','sqs:DeleteMessageBatch','sqs:ReceiveMessage','sqs:RemovePermission','sqs:ChangeMessageVisibilityBatch','sqs:SendMessageBatch','sqs:CreateQueue','sqs:TagQueue','sqs:AddPermission','sqs:UntagQueue','sqs:SendMessage','sqs:DeleteMessage','sqs:ChangeMessageVisibility','sqs:DeleteQueue','elastictranscoder:TestRole','elastictranscoder:CreatePipeline','elastictranscoder:DeletePipeline','elastictranscoder:UpdatePipelineNotifications','elastictranscoder:DeletePreset','elastictranscoder:CancelJob','elastictranscoder:CreateJob','elastictranscoder:UpdatePipelineStatus','elastictranscoder:CreatePreset','elastictranscoder:UpdatePipeline'}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Hibernate会话/模板返回null   java Bluetooth无法连接到OBD2   smartGWT中的行分隔符的java等价物?   java如何删除可执行路径错误   java使用ICE Tar库对大文件进行Tar   java Spring Boot/JavaFX:添加一个仍然可以访问JPA的关机挂钩(ctrlc)   使用输入流读取java属性文件   如何在Java中迭代HashSet元素时覆盖该元素   内容类型中的javascript set charset=“utf8”   使用cassandra触发器的java   用户界面什么是适合我的GUI(JAVA)的update()方法   Java实例控制   java前置摄像头无法在不同设备上工作   java方法组织。postgresql。jdbc。连接。createClob()尚未实现