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

设置统一云提供商集成

在此页面上

  • 先决条件
  • 步骤

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

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

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

重要

Atlas Kubernetes Operator如果您在独立的 CRD 模型下运行Atlas Kubernetes Operator ,则无法使用Amazon Web Services 参数配置Amazon Web Services IAM身份验证。atlasProjectAmazon Web Services要直接为Atlas项目配置AmazonAtlas Web Services 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中对其进行授权。

后退

联合

在此页面上