Konfigurera IAM-rolls baserad Data Collector-åtkomst

Det föredragna sättet att få tillgång till data är att konfigurera en IAM-roll i varje AWS-konto som ska analyseras, och att tillåta Capacity Planner Data Collector att anta den rollen för att samla in data.

Det finns två sätt på vilka du kan konfigurera den nödvändiga åtkomsten:

Innan du börjar, be ITRS att förse dig med kontonumret som ska användas av rollen DataCollectorAccess. Du kommer att behöva detta kontonummer för att tillåta åtkomst till Data Collector.

Konfigurera åtkomst med 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.

Det enklaste sättet att konfigurera AWS med rätt behörigheter för Data Collector är att använda CloudFormation i AWS-portalen.

För att konfigurera rollen DataCollectorAccess i ett enda konto och region, följ dessa steg:

  1. Spara nedanstående mall som en JSON-fil och namnge den CloudFormation-DataCollectorAccessRole.json. Du kommer att använda den när du skapar en ny stack.

    {
        "AWSTemplateFormatVersion": "2010-09-09",
        "Metadata": {
            "AWS::CloudFormation::Interface": {
                "ParameterGroups": [
                    {
                        "Label": {
                            "default": "IAM Role"
                        },
                        "Parameters": [
                            "ExternalAccount",
                            "ExternalId",
                            "ExternalUser"
                        ]
                    }
                ]
            }
        },
        "Parameters": {
            "ExternalId": {
                "Type": "String",
                "Description": "ITRS Data Collector External ID"
            },
            "ExternalAccount": {
                "Type": "String",
                "Default": "111171302824",
                "Description": "ITRS Data Collector Account"
            },
            "ExternalUser": {
                "Type": "String",
                "Default": "itrs-icpaas-dc",
                "Description": "ITRS Data Collector User"
            }
        },
        "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": "ICPaaS Data Collector IAM account",
                    "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 of the DataCollectorAccess Role",
                "Value": {
                    "Fn::GetAtt": [
                        "DataCollectorAccess",
                        "Arn"
                    ]
                }
            },
            "RoleId": {
                "Description": "Id of the DataCollectorAccess Role",
                "Value": {
                    "Fn::GetAtt": [
                        "DataCollectorAccess",
                        "RoleId"
                    ]
                }
            }
        }
    }
    
  2. Öppna AWS Console för kontot.

  3. Från listan över tillgängliga tjänster, välj Management & Governance > CloudFormation.

  4. Klicka på Create stack. Detta kommer att öppna konfigurationsfönstret där du kan ladda upp mallfilen.

  5. Välj Template is ready i Prerequisite - Prepare template-sektionen och Upload a template file i Specify template-sektionen av konfigurationsfönstret.
    image

  6. Klicka på Choose file och ladda upp din sparade CloudFormation-DataCollectorAccessRole.json-fil, och klicka sedan på Next.

  7. Ange ett namn för stacken för att kunna identifiera den på CloudFormations-sidan i AWS-portalen.

  8. Ange värden för ExternalAccount, ExternalId och ExternalUser.

  9. Klicka på Next och lägg till taggar. Detta är inte obligatoriskt men det kan hjälpa dig med löpande hantering.

  10. Välj en föredragen IAM-roll för att hantera stacken.

  11. Klicka på Next-Review, kontrollera att din konfiguration är korrekt, och klicka på Create Stack.

Note

Det enklaste sättet att distribuera stackar över en organisations AWS-konton och regioner är att använda stack sets, men detta kräver att antingen självhanterade eller tjänstehanterade behörigheter ställs in över organisationen och behöver beslutas på din organisations eget bevåg. För mer information, se AWS official documentation. JSON-skriptmallen för stack som används för att skapa en enskild stack kan också användas för att skapa stack sets.

Konfigurera åtkomst manuellt Copied

Följande steg ska utföras för varje AWS-konto som ska analyseras:

  1. Skapa en ny behörighetspolicy för att tillåta åtkomst till korrekt information. Se Konfigurera CostExplorerReadAccess-policy.
  2. Skapa den roll som Datainsamlaren kommer att anta när data samlas in. Se, Konfigurera DataCollectorAccess-roll.

Konfigurera CostExplorerReadAccess-policy 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.

Konfigurera DataCollectorAccess-roll 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.

Om du konfigurerar Data Collector-åtkomstrollen för flera konton, bör rollnamnet vara detsamma för alla konton.

För att skapa DataCollectorAccess-rollen, följ dessa steg:

  1. Gå till IAM > Roles och klicka på Create role.
  2. Välj Another AWS Account och för Account ID, ange ITRS-kontonumret.
  3. Under Options, välj Require external ID och ange ett lämpligt externt ID efter eget val. Notera det externa ID:t eftersom du kommer att behöva tillhandahålla det till ITRS.
    Välj inte Require MFA. image
  4. Klicka på Next: Permissions för att tilldela behörigheter.
  5. I fönstret Permissions, tilldela följande behörigheter till rollen genom att välja kryssrutorna:
    • AmazonEC2ReadOnlyAccess
    • AmazonRDSReadOnlyAccess
    • AWSCloudTrailReadOnlyAccess
    • AWSSavingsPlansReadOnlyAccess
    • CloudWatchReadOnlyAccess
    • CostExplorerReadAccess image
  6. Klicka på Next och lägg till taggar. Detta är inte obligatoriskt men det kan hjälpa dig med den löpande hanteringen.
  7. Klicka på Next-Review, kontrollera att din inställning är korrekt, och klicka på Create role.
  8. Namnge rollen DataCollectorAccess och spara.

Notera

Du behöver skicka kontonumret och det externa ID:t för rollen till din ITRS-representant på ett säkert sätt.
["Capacity Planner"] ["Capacity Planner > Data Collector"] ["User Guide"]

Was this topic helpful?