验证用于创建Cloudera数据平台环境的aws资源
cdp-validator-for-aws的Python项目详细描述
aws的cdp验证程序
概述
此工具验证是否已为正确设置了AWS资源 由Cloudera Data Platform(cdp)使用,以便cdp可以使用这些 资源来创建环境,如Cloudera documentation中定义的。在
运行工具
要验证的资源记录在json
文件中(称为
my_cdp.json
以下)。在
验证使用AWS服务,因此需要一个具有足够
权限。我们在示例中设置并使用一个名为validator
的角色
下面。在
以上两种情况将在本文档后面进行详细描述。在
一旦您满足了上述先决条件,那么执行就很简单:
python -m cdp_validator_for_aws -c my_cdp_file.json --profile validator
设置
Python包
我们建议使用python虚拟环境并安装它 打包到那个环境中。这将有助于消除 执行此工具时的环境问题。在
CDP JSON文件
这个工具使用一个json
文件(我们在
上面的例子,但是它的名字并不重要)来输入信息
关于要检查的资源。在
此文件的格式如下所示(可能有额外的 元素-我们显示的元素是关键的元素)并且 从cdp gui生成。但是有两个要素 not由gui生成并手动添加。它们是:
idBrokerInstanceProfileArn1
storageLocationBase
下面用jsonpath
表示这些字段的含义
字段:
aws.s3guard.dynamoDbTableName
:dynamo db表的名称 创造idBrokerInstanceProfileArn
:idbroker实例的arn 用于运行idbrokerec2实例的profileidBrokerMappings.baselineRole
:管理员角色的arn,用于 管理CDP datalake中的数据idBrokerMappings.dataAccessRole
:ranger审计角色的arnlocation.name
:这些资源的AWS区域network.aws.vpcId
:专有网络idnetwork.subnetIds
:将由 CDP公司securityAccess.defaultSecurityGroupId
:默认安全性的Id 集团securityAccess.securityGroupIdForKnox
:安全组的Id 对于诺克斯storageLocationBase
:指向bucket的s3a://
url,其中 数据将存储在数据湖中telementery.logging.s3.instanceProfile
:实例的arn 将运行日志记录系统的配置文件telemetry.logging.storageLocation
:记录日志的s3a://
url 将被放置。在
AWS设置
AWS需要正确设置才能使此工具工作。在
CLI
我们假设您已经按照AWS CLI Documentation安装并配置了awscli
权限
运行cdp_validator_for_aws
所需的最小权限为:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ec2:DescribeRouteTables",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSubnets",
"ec2:DescribeVpcs",
"ec2:DescribeVpcAttribute",
"eks:ListClusters",
"iam:GetContextKeysForPrincipalPolicy",
"iam:GetInstanceProfile",
"iam:GetRole",
"iam:SimulatePrincipalPolicy",
"s3:GetBucketLocation",
"s3:HeadBucket"
],
"Resource": "*"
}
]
}
对安全性影响最大的权限是
需要模拟各种角色
(iam:GetContextKeysForPrincipalPolicy
&;
iam:SimulatePrincipalPolicy
),作为
documented
美国焊接学会。cdp_validator_for_aws
将尽可能多地使用您的任何权限
可以给它。在
cdp_validator_for_aws
接受一个--profile profile_name
参数,如
根据通常的AWS CLI,所有的呼叫都会转到Amazon的
boto3
包做实际工作。在
设置权限结构
假设您已经设置好使用
default
使用您通常获得的任何权限配置文件。在
- 创建一个角色(将其称为
cdp_validation
),该角色:- 信任您的
default
角色 - 拥有以上权限(或大部分权限)
- 信任您的
- 在
${HOME}/.aws/credentials
中输入以下内容:
[validator]
role_arn = arn:aws:iam::YOUR_AWS_ACCOUNT_ID:role/cdp_validation
source_profile = default
现在您可以运行验证器:
python -m cdp_validator_for_aws -c my_cdp_file.json --profile validator
配置
不需要配置。以下信息仅供参考 文件目的。在
策略管理
Cloudera的documentation显示了各种策略文件 它们结合起来,使四个角色中的每一个都有必要 各种资源的权限。在
这些文件位于包的policies
目录中,它们是
根据Cloudera在
Minimal setup for cloud
storage。
他们控制着空调为每个项目模拟的选项和资源
角色。如果将来操作发生更改,则这些文件可以
简单更新。如果资源中的变量发生变化,那么我
恐怕您必须更改代码(请查看policy_manager.py
开始)
- 项目
标签: