Wie kann ich die IAM-Berechtigungen eines Elastic Beanstalk-Benutzers auf bestimmte Anwendungen beschränken?

Lesedauer: 3 Minute
0

Ich möchte die AWS Identity and Access Management (IAM)-Berechtigungen eines AWS Elastic Beanstalk-Benutzers auf bestimmte Anwendungen beschränken.

Kurzbeschreibung

Verwenden Sie eine IAM-Richtlinie, um die Berechtigungen eines Elastic Beanstalk-Benutzers einzuschränken. Ein Elastic Beanstalk-Benutzer kann ein IAM-Benutzer oder eine IAM-Rolle sein. Die Richtlinie kann den Zugriff auf eine oder mehrere bestimmte Anwendungen einschränken.

Behebung

1.Erstellen Sie eine IAM-Richtlinie, die den Zugriff auf Ihre Elastic Beanstalk-Anwendung einschränkt. Verwenden Sie die folgende IAM-Richtlinie als Beispielvorlage.

2.Ordnen Sie Ihre IAM-Richtlinie dem IAM-Benutzer oder der IAM-Rolle zu, den oder die Sie nur auf eine bestimmte Anwendung oder Anwendungen beschränken möchten.

Wenn Sie einen Dienst verwenden, der mit Elastic Beanstalk integriert ist, wie Amazon Simple Storage Service (Amazon S3), dann erlauben Sie einen größeren Zugriff mit minimalen Einschränkungen. Das hat die folgenden Gründe:

  • In Elastic Beanstalk können Sie die Berechtigungen für Ihre Anwendung nicht direkt einschränken, da die Anwendungsstruktur aus einer Sammlung von Komponenten besteht. Bei diesen Komponenten handelt es sich beispielsweise um Umgebungen, Versionen und Umgebungskonfigurationen. Sie können Berechtigungen jedoch mithilfe von Aktionen, Ressourcen und Bedingungsschlüsseln genauer einschränken. Eine Liste der verfügbaren Bedingungsschlüssel, mit denen Sie je nach Anwendungsfall bedingten Zugriff gewähren können, finden Sie unter Ressourcen und Bedingungen für Elastic Beanstalk-Aktionen.
  • Eine IAM-Richtlinie ist kein wirksames Mittel, um die zugrunde liegenden Ressourcen zu sichern. Sie können beispielsweise mithilfe der entsprechenden IAM-Richtlinie einschränken, wie Benutzer mit Elastic Beanstalk-APIs interagieren. Sie können jedoch nicht verhindern, dass Benutzer mit Elastic Beanstalk-Berechtigungen Ressourcen in anderen AWS-Services erstellen, die nichts mit Elastic Beanstalk zu tun haben.
  • Einige der Ressourcen, in die Elastic Beanstalk integriert ist, unterstützen keine Berechtigungen auf Ressourcenebene. Weitere Informationen finden Sie unter AWS-Services, die mit IAM arbeiten.

Die folgende Beispielrichtlinie wurde entwickelt, um vollen Zugriff auf zwei Elastic Beanstalk-Anwendungen, App1 und App2, zu gewähren:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "elasticbeanstalk:UpdateApplicationVersion",
        "elasticbeanstalk:CreateApplicationVersion",
        "elasticbeanstalk:DeleteApplicationVersion"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "elasticbeanstalk:InApplication": [
            "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/My App1",
            "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/My App2"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "elasticbeanstalk:DescribeAccountAttributes",
        "elasticbeanstalk:AbortEnvironmentUpdate",
        "elasticbeanstalk:TerminateEnvironment",
        "rds:*",
        "elasticbeanstalk:ValidateConfigurationSettings",
        "elasticbeanstalk:CheckDNSAvailability",
        "autoscaling:*",
        "elasticbeanstalk:RequestEnvironmentInfo",
        "elasticbeanstalk:RebuildEnvironment",
        "elasticbeanstalk:DescribeInstancesHealth",
        "elasticbeanstalk:DescribeEnvironmentHealth",
        "sns:*",
        "elasticbeanstalk:RestartAppServer",
        "s3:*",
        "cloudformation:*",
        "elasticloadbalancing:*",
        "elasticbeanstalk:CreateStorageLocation",
        "elasticbeanstalk:DescribeEnvironmentManagedActions",
        "elasticbeanstalk:SwapEnvironmentCNAMEs",
        "elasticbeanstalk:DescribeConfigurationOptions",
        "elasticbeanstalk:ApplyEnvironmentManagedAction",
        "cloudwatch:*",
        "elasticbeanstalk:CreateEnvironment",
        "elasticbeanstalk:List*",
        "elasticbeanstalk:DeleteEnvironmentConfiguration",
        "elasticbeanstalk:UpdateEnvironment",
        "ec2:*",
        "elasticbeanstalk:RetrieveEnvironmentInfo",
        "elasticbeanstalk:DescribeConfigurationSettings",
        "sqs:*",
        "dynamodb:CreateTable",
        "dynamodb:DescribeTable"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:*"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/aws-elasticbeanstalk-ec2-role",
        "arn:aws:iam::123456789012:role/aws-elasticbeanstalk-service-role",
        "arn:aws:iam::123456789012:instance-profile/aws-elasticbeanstalk-ec2-role"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "elasticbeanstalk:DescribeEvents",
        "elasticbeanstalk:DescribeApplications",
        "elasticbeanstalk:AddTags",
        "elasticbeanstalk:ListPlatformVersions"
      ],
      "Resource": [
        "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/My App1",
        "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/My App2"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "elasticbeanstalk:AddTags",
        "elasticbeanstalk:Describe*"
      ],
      "Resource": [
        "arn:aws:elasticbeanstalk:*::platform/*",
        "arn:aws:elasticbeanstalk:*:*:environment/*/*",
        "arn:aws:elasticbeanstalk:*:*:application/*",
        "arn:aws:elasticbeanstalk:*::solutionstack/*",
        "arn:aws:elasticbeanstalk:*:*:applicationversion/*/*",
        "arn:aws:elasticbeanstalk:*:*:configurationtemplate/*/*"
      ],
      "Condition": {
        "StringEquals": {
          "elasticbeanstalk:InApplication": [
            "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/My App1",
            "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/My App2"
          ]
        }
      }
    }
  ]
}

Weitere Anwendungsfälle und Beispiele finden Sie unter Beispielrichtlinien, die auf Ressourcenberechtigungen basieren, oder Beispielrichtlinien, die auf verwalteten Richtlinien basieren.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Jahren