委派代理管理账户管理config
本文介绍如何使用AWS Organizations集中管理AWS Config的跨账户配置
前提条件
使用管理账户,或者也叫payer账户,只有管理账户才能够开启组织级别的config。
首先确保您已经设置了AWS Organizations:
# 检查Organizations状态
aws organizations describe-organization1. 创建允许整个组织写入的S3存储桶
# 创建S3存储桶用于Config数据,注意修改存储桶的名称和存储桶的region
aws s3 mb s3://your-config-bucket-name --region us-east-1
# 设置存储桶策略允许Config写入
aws s3api put-bucket-policy \
    --bucket your-config-bucket-name \
    --policy file://config-bucket-policy.json存储桶策略示例 (config-bucket-policy.json):
organizationID替换成你自己的组织ID;
your-config-bucket-name替换成你的config存储桶名称。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AWSConfigBucketPermissionsCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "config.amazonaws.com"
            },
            "Action": [
                "s3:GetBucketAcl",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::your-config-bucket-name",
                "arn:aws:s3:::your-config-bucket-name/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:SourceOrgID": "o-organizationID"
                }
            }
        }
    ]
}2. 启用 AWS Config 对 AWS Organizations 的访问
从您的组织管理帐户运行以下命令:
aws organizations enable-aws-service-access --service-principal=config.amazonaws.com使用以下命令验证 enable-aws-service-access 命令是否完成:
aws organizations list-aws-service-access-for-organization在 EnabledServicePrincipals 下,您应该看到 config.amazonaws.com 。
4. 为 AWS Config 注册委派管理员账户
要从非管理账户设置聚合器,您必须注册一个委托管理员账户,该账户是您组织的成员账户。从主账户中,使用 RegisterDelegatedAdministrator 操作注册委托管理员。在以下 AWS CLI 命令中,将 MemberAccountID 替换为相应的委托管理员账户 ID。
aws organizations register-delegated-administrator --service-principal config.amazonaws.com --account-id MemberAccountID注意 :管理账户可以为 AWS Config(config.amazonaws.com)分配的委派管理员的最大数量为 3。
运行以下命令来验证委派管理员是否已从管理帐户成功注册:
aws organizations list-delegated-administrators --service-principal=config.amazonaws.com您应该看到类似以下内容的输出:
{
    "DelegatedAdministrators": [
        {
            "Id": "MemberAccountID",
            "Arn": "arn:aws:organizations::MemeberAccountID:account/o-**********/DelegatedAdministratorAccountID",
            "Email": "Email_ID_MemberAccount",
            "Name": "name",
            "Status": "ACTIVE",
            "JoinedMethod": "INVITED",
            "JoinedTimestamp": 1604867734.48,
            "DelegationEnabledDate": 1607020986.801
        }
    ]
}3. 使用委派管理员账户设置聚合器
前面的部分配置好以后就可以使用委派的账户设置config的聚合器了。
需要注意的是,虽然聚合配置好了,但是并不意味着所有组织内的其他账户都开启了config,能够看到config检查的结果了,需要每个账户每个region开启config才可以。也可以通过使用AWS Systems Manager Quick Setup批量开启config:https://aws.amazon.com/blogs/mt/managing-configuration-compliance-across-your-organization-with-aws-systems-manager-quick-setup/
# 创建交付通道
aws configservice put-delivery-channel \
    --delivery-channel name=default,s3BucketName=your-config-bucket-name \
    --region us-east-1
# 创建配置记录器
aws configservice put-configuration-recorder \
    --configuration-recorder name=default,roleARN=arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig,recordingGroup='{allSupported=true,includeGlobalResourceTypes=true}' \
    --region us-east-1
# 启动配置记录器
aws configservice start-configuration-recorder \
    --configuration-recorder-name default \
    --region us-east-1
    
# 创建组织聚合器收集所有成员账户数据
aws configservice put-configuration-aggregator \
    --configuration-aggregator-name OrganizationConfigAggregator \
    --organization-aggregation-source '{
        "RoleArn": "arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig",
        "AwsRegions": ["us-east-1", "us-west-2"],
        "AllAwsRegions": false
    }' \
    --region us-east-1
    4. 验证部署
# 检查聚合器状态
aws configservice describe-configuration-aggregators \
    --configuration-aggregator-names OrganizationConfigAggregator
# 查看合规性摘要
aws configservice get-aggregate-compliance-summary \
    --configuration-aggregator-name OrganizationConfigAggregator参考资料
https://aws.amazon.com/blogs/mt/org-aggregator-delegated-admin/
最后更新于