Configuración del acceso al Recolector de Datos basado en roles de IAM

La forma preferida de acceder a los datos es configurar un rol de IAM en cada cuenta de AWS a analizar, y permitir que el Recolector de Datos del Planificador de Capacidad asuma ese rol para recopilar datos.

Hay dos maneras en las que puedes configurar el acceso requerido:

Antes de comenzar, pide a ITRS que te proporcione el número de cuenta que será utilizado por el rol DataCollectorAccess. Necesitarás este número de cuenta para permitir el acceso al Recolector de Datos.

Configurar acceso con CloudFormation Copied

The DataCollectorAccess role allows the Data Collector on the estate to access the required data on your estate. Access can be controlled by deauthorising the role for the account, or by deleting it altogether.

La forma más fácil de configurar AWS con los permisos correctos para el Recolector de Datos es usar CloudFormation en el portal de AWS.

Para configurar el rol DataCollectorAccess en una sola cuenta y región, sigue estos pasos:

  1. Guarda la plantilla a continuación como un archivo JSON y nómbralo CloudFormation-DataCollectorAccessRole.json. Lo utilizarás al crear una nueva pila.

    {
        "AWSTemplateFormatVersion": "2010-09-09",
        "Metadata": {
            "AWS::CloudFormation::Interface": {
                "ParameterGroups": [
                    {
                        "Label": {
                            "default": "IAM Role"
                        },
                        "Parameters": [
                            "ExternalAccount",
                            "ExternalId",
                            "ExternalUser"
                        ]
                    }
                ]
            }
        },
        "Parameters": {
            "ExternalId": {
                "Type": "String",
                "Description": "ID Externo del Recolector de Datos de ITRS"
            },
            "ExternalAccount": {
                "Type": "String",
                "Default": "111171302824",
                "Description": "Cuenta del Recolector de Datos de ITRS"
            },
            "ExternalUser": {
                "Type": "String",
                "Default": "itrs-icpaas-dc",
                "Description": "Usuario del Recolector de Datos de ITRS"
            }
        },
        "Resources": {
            "DataCollectorAccess": {
                "Type": "AWS::IAM::Role",
                "Properties": {
                    "AssumeRolePolicyDocument": {
                        "Version": "2012-10-17",
                        "Statement": [
                            {
                                "Effect": "Allow",
                                "Principal": {
                                        "AWS": {
                                            "Fn::Sub": "arn:${AWS::Partition}:iam::${ExternalAccount}:user/${ExternalUser}"
                                        }
                                },
                                "Action": "sts:AssumeRole",
                                "Condition": {
                                    "StringEquals": {
                                        "sts:ExternalId": {
                                            "Ref": "ExternalId"
                                        }
                                    }
                                }
                            }
                        ]
                    },
                    "Description": "Cuenta IAM del Recolector de Datos de ICPaaS",
                    "ManagedPolicyArns": [
                        "arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess",
                        "arn:aws:iam::aws:policy/AWSCloudTrailReadOnlyAccess",
                        "arn:aws:iam::aws:policy/AmazonRDSReadOnlyAccess",
                        "arn:aws:iam::aws:policy/CloudWatchReadOnlyAccess",
                        "arn:aws:iam::aws:policy/ComputeOptimizerReadOnlyAccess",
                        "arn:aws:iam::aws:policy/AWSSavingsPlansReadOnlyAccess"
                    ],
                    "MaxSessionDuration": 3600,
                    "Path": "/",
                    "Policies": [
                        {
                            "PolicyName": "CostExplorerReadAccess",
                            "PolicyDocument": {
                                "Version": "2012-10-17",
                                "Statement": [
                                    {
                                        "Effect": "Allow",
                                        "Action": [
                                            "ce:GetReservationUtilization",
                                            "ce:GetDimensionValues",
                                            "ce:GetCostAndUsage",
                                            "ce:GetTags"
                                        ],
                                        "Resource": "*"
                                    }
                                ]
                            }
                        }
                    ],
                    "RoleName": "DataCollectorAccess"
                }
            }
        },
        "Outputs": {
            "RoleArn": {
                "Description": "ARN del Rol DataCollectorAccess",
                "Value": {
                    "Fn::GetAtt": [
                        "DataCollectorAccess",
                        "Arn"
                    ]
                }
            },
            "RoleId": {
                "Description": "Id del Rol DataCollectorAccess",
                "Value": {
                    "Fn::GetAtt": [
                        "DataCollectorAccess",
                        "RoleId"
                    ]
                }
            }
        }
    }
    
  2. Abre la Consola de AWS para la cuenta.

  3. De la lista de servicios disponibles, selecciona Management & Governance > CloudFormation.

  4. Haz clic en Create stack. Esto abrirá la ventana de configuración donde puedes subir el archivo de plantilla.

  5. Selecciona Template is ready en la sección Prerequisite - Prepare template y Upload a template file en la sección Specify template de la ventana de configuración.
    image

  6. Haz clic en Choose file y sube tu archivo guardado CloudFormation-DataCollectorAccessRole.json, luego haz clic en Next.

  7. Introduce un nombre para la pila para identificarla en la página de CloudFormations del portal de AWS.

  8. Proporciona valores para ExternalAccount, ExternalId y ExternalUser.

  9. Haz clic en Next y añade etiquetas. Esto no es obligatorio pero puede ayudarte con la gestión continua.

  10. Selecciona un rol de IAM preferido para gestionar la pila.

  11. Haz clic en Next-Review, verifica que tu configuración es correcta, y haz clic en Create Stack.

Nota

La forma más fácil de implementar pilas en las cuentas y regiones de AWS de una organización es usar conjuntos de pilas, sin embargo, esto requiere configurar permisos gestionados por sí mismo o por el servicio a través de la organización y debe ser decidido a discreción de tu organización. Para más información, ver AWS official documentation. El script JSON de la plantilla de pila utilizado para crear una sola pila también se puede usar para crear conjuntos de pilas.

Configuración del acceso manualmente Copied

Los pasos a continuación deben realizarse para cada cuenta de AWS que vaya a ser analizada:

  1. Crear una nueva política de permisos para permitir el acceso a la información correcta. Ver Configurar la política CostExplorerReadAccess.
  2. Crear el rol que el Colector de Datos asumirá al recopilar datos. Ver, Configurar el rol DataCollectorAccess.

Configurar la política CostExplorerReadAccess Copied

The Data Collector requires a new permissions policy to access data. To set up the CostExplorerReadAccess policy, follow the steps:

  1. Open the AWS Console for the account.
  2. Go to IAM > Policies and click Create policy.
  3. Open the JSON tab.
  4. Copy the code into the text box:
    {
    "Version": "2012-10-17",
    "Statement": 
    [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": 
            [
                "ce:GetReservationUtilization",
                "ce:GetDimensionValues",
                "ce:GetCostAndUsage",
                "ce:GetTags"
            ],
            "Resource": "*"
        }
    ]
}
  1. Name the policy CostExplorerReadAccess, and save.

Configurar el rol DataCollectorAccess Copied

The DataCollectorAccess role allows the Data Collector on the estate to access the required data on your estate. Access can be controlled by deauthorising the role for the account, or by deleting it altogether.

Si estás configurando el rol de acceso del Colector de Datos para varias cuentas, el nombre del rol debería ser el mismo en todas las cuentas.

Para crear el rol DataCollectorAccess, sigue estos pasos:

  1. Ir a IAM > Roles y hacer clic en Create role.
  2. Seleccionar Another AWS Account y para el Account ID, proporcionar el número de cuenta de ITRS.
  3. Bajo Options, seleccionar Require external ID, e introducir un ID externo adecuado de tu elección. Anotar el ID externo ya que necesitarás proporcionárselo a ITRS.
    No seleccionar Require MFA. image
  4. Hacer clic en Next: Permissions para asignar permisos.
  5. En la ventana Permissions, asignar los siguientes permisos al rol seleccionando las casillas:
    • AmazonEC2ReadOnlyAccess
    • AmazonRDSReadOnlyAccess
    • AWSCloudTrailReadOnlyAccess
    • AWSSavingsPlansReadOnlyAccess
    • CloudWatchReadOnlyAccess
    • CostExplorerReadAccess image
  6. Hacer clic en Next y agregar etiquetas. Esto no es obligatorio pero puede ayudar con la gestión continua.
  7. Hacer clic en Next-Review, verificar que la configuración sea correcta, y hacer clic en Create role.
  8. Nombrar el rol DataCollectorAccess, y guardar.

Nota

Necesitas enviar el número de cuenta y el ID externo del rol a tu representante de ITRS de manera segura.
["Capacity Planner"] ["Capacity Planner > Data Collector"] ["User Guide"]

Was this topic helpful?