AWS-Zugriff und -Berechtigungen mithilfe von Richtlinien steuern

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Konfigurieren Sie Richtlinien mit der erforderlichen Berechtigungsstufe, um Zugriff auf die AWS-Ressourcen für Cloud-Discovery und Cloud Provisioning and Governance bereitzustellen.

    Vorbereitungen

    Machen Sie sich mit dem Erstellen von IAM-Benutzern und Benutzerrichtlinien vertraut. Konsultieren Sie dazu die AWS-Dokumentation.

    Identifizieren Sie die Berechtigungsstufe, die zum Erkennen der Ressourcen mit Cloud-Discovery und zum Verwalten der Ressourcen mit Cloud Provisioning and Governance erforderlich ist. Beispiel:
    • Zusätzliche S3-Berechtigungen sind erforderlich, da AWS einen S3-Bucket zum Speichern und Ausführen der CloudFormation-Vorlagen zum Bereitstellen von Stapeln mit CloudFormation verwendet. Diese Berechtigungen sind auch dann erforderlich, wenn Sie dieselbe CloudFormation-Vorlage über die AWS-Konsole ausführen.
    • Für die Mustererkennung über die benutzerdefinierte Richtlinie ist schreibgeschützter Zugriff erforderlich.
    Mit AWS CloudFormation werden Ressourcen bereitgestellt und konfiguriert, indem die in der Vorlage beschriebenen AWS-Services aufgerufen werden. Weitere Informationen hierzu finden Sie unter Funktionsweise von AWS CloudFormation.
    Erforderliche Rollen:
    • AWS-Verwaltungskonsole Administrator
    • Für Cloud-Discovery: admin oder discovery_admin
    • Für Cloud Provisioning and Governance: admin oder sn_cmp.cloud_admin

    Warum und wann dieser Vorgang ausgeführt wird

    Mit der von Ihnen konfigurierten Richtlinie werden die AWS-Berechtigungen definiert, die Sie einem Benutzer, einer Gruppe oder einer Rolle zuweisen können. Geben Sie abhängig von den AWS-Services, die Sie verwenden, Aktionen für den Service an, um mit Cloud Provisioning and Governance Erkennungs-, Bereitstellungs- und Lebenszyklusaktionen auszuführen.

    Prozedur

    1. Melden Sie sich bei der AWS -Verwaltungskonsole mit den Anmeldeinformationen des entsprechenden Servicekontos an.
      Wenn Sie einen IAM-Benutzer oder eine IAM-Rolle verwendet haben, um Zugriff mit temporären Anmeldeinformationen bereitzustellen, melden Sie sich mit demselben IAM-Benutzer oder derselben IAM-Rolle an.
    2. Öffnen Sie den Benutzerdatensatz in der Instanz für den entsprechenden Benutzer.
    3. Definieren Sie eine Benutzerrichtlinie in der AWS-Managementkonsole mit einer der folgenden Methoden:
      • Gewähren Sie dem Administrator Zugriff auf die Instanz. Diese Methode bietet die gleiche Zugriffsebene wie die Verwendung der Zugriffsschlüssel-ID und des geheimen Zugriffsschlüssels. Hängen Sie die Richtlinie AdministratorAccess an das Benutzerprofil an.
        Hinweis:
        Zum Erstellen einer Benutzerrichtlinie, die nur Cloud-Discovery und nicht die Bereitstellung von Cloud-Ressourcen unterstützt, hängen Sie stattdessen die Richtlinie ReadOnlyAccess an.
      • Erstellen Sie eine benutzerdefinierte Richtlinie mit einem beschreibenden Namen. Geben Sie im Feld für das Richtliniendokument den Code ein, der die APIs enthält, deren Ausführung durch diese Richtlinie erlaubt wird.
        Hinweis:
        Das folgende JSON-Beispiel enthält Berechtigungen für Cloud-Discovery.
        {
           "Version":"2012-10-17",
           "Statement":[
              {
                 "Sid":"PermissionsNeededForDiscovery",
                 "Effect":"Allow",
                 "Action":[
                    "account:ListRegions",
                    "apigateway:GET",
                    "application-autoscaling:Describe*",
                    "autoscaling-plans:Describe*",
                    "autoscaling:Describe*",
                    "autoscaling:DescribeAutoScalingGroups",
                    "autoscaling:DescribeLaunchConfigurations",
                    "cloudformation:Describe*",
                    "cloudformation:DescribeStack*",
                    "cloudformation:List*
                    "cloudwatch:Get*",
                    "cloudwatch:List*",
                    "config:ListDiscoveredResources",
                    "dynamodb:Describe*",
                    "dynamodb:DescribeTable",
                    "dynamodb:ListGlobalTables",
                    "dynamodb:ListTables",
                    "ec2:Describe*",
                    "ec2:ReportInstanceStatus",
                    "ecs:Describe*",
                    "ecs:List*",
                    "eks:Describe*",
                    "eks:List*",
                    "elasticache:Describe*",
                    "elasticache:List*",
                    "elasticfilesystem:Describe*",
                    "elasticloadbalancing:Describe*",
                    "lambda:Get*",
                    "lambda:List*",
                    "organizations:Describe*",
                    "organizations:DescribeOrganization",
                    "organizations:List*",
                    "rds:Describe*",
                    "redshift:Describe*",
                    "route53:GetHostedZone",
                    "route53:List*",
                    "s3:GetAccountPublicAccessBlock",
                    "s3:GetBucket*",
                    "s3:GetBucketLocation",
                    "s3:List*",
                    "sdb:GetAttributes",
                    "sns:GetEndpointAttributes",
                    "sns:GetSubscriptionAttributes",
                    "sns:List*",
                    "sns:ListPlatformApplications",
                    "sns:ListSubscriptions",
                    "sns:ListSubscriptionsByTopic",
                    "sns:ListTopics",
                 ],
                 "Resource":"*"
              }
           ]
        }
      • Das folgende JSON-Beispiel enthält Berechtigungen für Cloud-Discovery und Cloud Provisioning and Governance.
        {
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Sid": "PermissionsNeededForCPG",
                    "Effect": "Allow",
                    "Action": [
                        "account:ListRegions",
                        "apigateway:GET",
                        "application-autoscaling:Describe*",
                        "autoscaling-plans:Describe*",
                        "autoscaling:Describe*",
                        "autoscaling:DescribeAutoScalingGroups",
                        "autoscaling:DescribeLaunchConfigurations",
                        "cloudformation:Describe*",
                        "cloudformation:DescribeStack*",
                        "cloudwatch:Get*",
                        "cloudwatch:List*",
                        "config:ListDiscoveredResources"
                        "dynamodb:Describe*",
                        "dynamodb:DescribeTable",
                        "dynamodb:ListGlobalTables",
                        "dynamodb:ListTables",
                        "ec2:Describe*",
                        "ec2:ReportInstanceStatus",
                        "ecs:Describe*",
                        "ecs:List*",
                        "eks:Describe*",
                        "eks:List*",
                        "elasticache:Describe*",
                        "elasticache:List*",
                        "elasticfilesystem:Describe*",
                        "elasticloadbalancing:Describe*",
                        "lambda:Get*",
                        "lambda:List*",
                        "organizations:Describe*",
                        "organizations:DescribeOrganization",
                        "organizations:List*",
                        "rds:Describe*",
                        "redshift:Describe*",
                        "route53:GetHostedZone",
                        "route53:List*",
                        "s3:GetAccountPublicAccessBlock",
                        "s3:GetBucket*",
                        "s3:GetBucketLocation",
                        "s3:List*",
                        "sdb:GetAttributes",
                        "sns:GetEndpointAttributes",
                        "sns:GetSubscriptionAttributes",
                        "sns:List*",
                        "sns:ListPlatformApplications",
                        "sns:ListSubscriptions",
                        "sns:ListSubscriptionsByTopic",
                        "sns:ListTopics",
                    ],
                    "Resource": "*"
                },
                {
                    "Sid": "MinimalPermissionsNeededForEc2ProvisioningThroughCloudFormation",
                    "Effect": "Allow",
                    "Action": [
                        "cloudformation:CreateStack",
                        "cloudformation:CreateUploadBucket",
                        "cloudformation:DeleteStack",
                        "cloudformation:DescribeStackEvents",
                        "cloudformation:DescribeStackResources",
                        "cloudformation:DescribeStacks",
                        "cloudformation:GetTemplate",
                        "cloudformation:GetTemplateSummary",
                        "cloudformation:List*",
                        "cloudformation:UpdateStack",
                        "cloudformation:ValidateTemplate"
                        "ec2:*",
                        "s3:CreateBucket",
                        "s3:DeleteBucket",
                        "s3:DeleteObject",
                        "s3:GetObject",
                        "s3:ListBucket",
                        "s3:PutObject",
                    ],
                    "Resource": "*"
                }
            ]
        }