Docs 菜单
Docs 主页
/ /
MongoDB Atlas Kubernetes Operator
/

设置统一云提供商集成

在此页面上

  • 先决条件
  • 步骤

某些Atlas功能(包括 Data Federation 静态加密 ) 使用 AWS IAM 角色 进行身份验证 。当Atlas访问 AWS 服务时,它会 担任 IAM角色。

如果您拥有 Project Owner角色,则可以为 Atlas 帐户设置假定的 IAM 角色,以便与 Atlas Administration API 或 Atlas UI 一起使用。 Atlas仅支持对Amazon Web Services的统一访问。

您可以使用Atlas Kubernetes Operator Amazon Web ServicesAtlasProject 自定义资源 中的 IAM 角色设立统一访问权限。

重要

如果您在独立的 CRD 模型下运行Atlas Kubernetes Operator ,则无法使用atlasProject参数配置AWS IAM身份验证。要直接为Atlas项目配置AWS IAM身份验证,请参阅aws-iam-authentication。

您需要以下公共 API 密钥、私有 API 密钥和组织 ID 信息, 配置 Atlas Kubernetes Operator 对 Atlas 的访问权限。

  • 如果您希望Atlas Kubernetes Operator创建新的Atlas项目,请为组织授予编程访问权限。如果您的组织需要Atlas Administration API的IP访问列表,您还必须配置API访问权限列表。

    重要

    您必须为 API 密钥分配 Organization Project Creator组织角色或更高级别的角色。

  • 如果要使用现有Atlas项目,请从项目添加项目访问权限。如果您的组织需要Atlas Administration API的IP访问列表,您还必须配置API访问权限列表。

    重要

    您必须为 API 密钥分配 Project Owner 项目角色。

要了解更多信息,请参阅配置对 Atlas 的访问权限。

1
  1. AtlasProject spec.cloudProviderIntegrations.iamAssumedRoleArn自定义资源 的 参数中指定一个空值占位符。

  2. AtlasProject AWSspec.cloudProviderIntegrations.providerName自定义资源 的 参数中指定 。

示例:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: Test Project
projectIpAccessList:
- ipAddress: "192.0.2.15"
comment: "IP address for Application"
cloudProviderIntegrations:
- providerName: "AWS"
iamAssumedRoleArn: ""
EOF

重要

在向AtlasProject自定义资源添加任何其他访问角色之前,请先完成整个过程,为空值占位符配置角色。

2
  1. 运行命令以检索后续步骤所需的atlasAWSAccountArn

    kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations.atlasAWSAccountArn.type}'
    arn:aws:iam::198765432109:root
  2. 运行命令以检索后续步骤所需的atlasAssumedRoleExternalId

    kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations.atlasAssumedRoleExternalId.type}'
    1a234b56-c789-0d12-345e-67f89012345a
3

您可以使用现有IAM角色,也可以创建新的IAM角色以实现统一访问。

修改Amazon Web Services IAM角色的信任策略 使用以下自定义信任策略。将突出显示的行替换为您在上一步中检索到的值。

{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"AWS":"<atlasAWSAccountArn>"
},
"Action":"sts:AssumeRole",
"Condition":{
"StringEquals":{
"sts:ExternalId":"<atlasAssumedRoleExternalId>"
}
}
}
]
}

创建Amazon Web Services IAM角色 使用以下自定义信任策略。将突出显示的行替换为您在上一步中检索到的值。

{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"AWS":"<atlasAWSAccountArn>"
},
"Action":"sts:AssumeRole",
"Condition":{
"StringEquals":{
"sts:ExternalId":"<atlasAssumedRoleExternalId>"
}
}
}
]
}
4

AWS管理控制台的Roles部分,单击您为 Atlas 访问编辑或创建的IAM角色。 Amazon Web ServicesSummary部分中显示ARN

5

spec.cloudProviderIntegrations.iamAssumedRoleArn AtlasProject自定义Resource 的 参数中的空值占位符替换为上一步中 IAM role的 Amazon Web Services ARN 。

示例:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: Test Project
projectIpAccessList:
- ipAddress: "192.0.2.15"
comment: "IP address for Application"
cloudProviderIntegrations:
- providerName: "AWS"
iamAssumedRoleArn: "arn:aws:iam::123456789012:role/aws-service-role/support.amazonaws.com/myRole"
EOF
6
  1. 运行命令以检索状态:

    kubectl get atlasprojects my-project -o=jsonpath='{.status.cloudProviderIntegrations}'
  2. 检查READY状态。

    • 如果状态为CREATED ,则 Atlas 创建了该角色,但您尚未在Amazon Web Services中授权。

    • 如果状态为EMPTY_ARN ,则 Atlas 创建了角色,但您尚未指定spec.cloudProviderIntegrations.iamAssumedRoleArn

    • 如果状态为READY ,则 Atlas 已创建角色,并且您已在Amazon Web Services中对其进行授权。

后退

联合

在此页面上