Skip to main content

AWS 访问策略语言创建库

项目描述

https://img.shields.io/pypi/v/awacs.svg https://travis-ci.org/cloudtools/awacs.png?branch=master https://img.shields.io/pypi/l/awacs.svg

关于

awacs - 亚马逊网络访问控制子系统

通过编写 Python 代码来描述 AWS 策略,awacs 库允许更轻松地创建 AWS 访问策略语言 JSON。为了便于尽早捕获策略格式或 JSON 错误,库在类中内置了属性和类型检查。

注意:旧的awacs.aws.Policy对象将在未来被弃用,优先于awacs.aws.PolicyDocument类。这是由于旧对象和troposphere.iam.Policy对象之间出现的混淆 。

安装

awcs 可以使用 python 的 pip 分发系统安装,方法是:

$ pip install awacs

或者,您可以通过克隆此存储库并发出以下命令来运行使用 setup.py 进行安装:

$ python setup.py install

例子

使用此功能的示例来自AWS IAM文档。这显示了创建附加到 Amazon S3 存储桶的策略:

from awacs.aws import Action, Allow, PolicyDocument, Principal, Statement
from awacs.iam import ARN as IAM_ARN
from awacs.s3  import ARN as S3_ARN

account = "123456789012"
user = "user/Bob"

pd = PolicyDocument(
    Version="2012-10-17",
    Id="S3-Account-Permissions",
    Statement=[
        Statement(
            Sid="1",
            Effect=Allow,
            Principal=Principal("AWS", [IAM_ARN(user, '', account)]),
            Action=[Action("s3", "*")],
            Resource=[S3_ARN("my_corporate_bucket/*"),],
        ),
    ],
)
print(pd.to_json())

会产生这个 json 策略:

{
    "Id": "S3-Account-Permissions",
    "Statement": [
        {
            "Action": [
                "s3:*"
            ],
            "Effect": "Allow",
            "Principal": [
                {
                    "AWS": [
                        "arn:aws:iam::123456789012:user/Bob"
                    ]
                }
            ],
            "Resource": [
                "arn:aws:s3:::my_corporate_bucket/*"
            ],
            "Sid": "1"
        }
    ],
    "Version": "2012-10-17"
}

社区

我们有一个 google 组cloudtools-dev,您可以在其中提出问题并与 cloudtools/awacs 社区互动。问题和请求请求总是受欢迎的!

贡献新动作

要更新操作,有一个生成器工具可以从 AWS 的文档资源中抓取策略并自动生成新文件。可以运行以下命令(使用 Python 3.7+)来更新存储库:

$ python3 -m pip install -r scrape/requirements.txt
$ python3 -m pip install .
$ python3 ./scrape/scrape.py
$ git diff

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

awacs-2.2.0.tar.gz (147.3 kB 查看哈希

已上传 source

内置分布

awacs-2.2.0-py3-none-any.whl (275.6 kB 查看哈希

已上传 py3