Contrôler l'accès à AWS et les autorisations à l'aide de politiques

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 3 minutes de lecture
  • Configurez les politiques avec le niveau d'autorisations nécessaire pour fournir l'accès aux ressources AWS pour Détection dans le cloud et Cloud Provisioning and Governance.

    Avant de commencer

    Familiarisez-vous avec la création d'utilisateurs IAM et de politiques d'utilisateur. Consultez la documentation AWS.

    Identifiez le niveau d'autorisations requis pour détecter les ressources à l'aide de Détection dans le cloud et gérer les ressources avec Cloud Provisioning and Governance. Par exemple :
    • Des autorisations S3 supplémentaires sont nécessaires, car AWS utilise une catégorie S3 pour stocker et exécuter les modèles de formation dans le cloud afin de déployer des piles à l’aide de CloudFormation. Ces autorisations sont nécessaires même si vous exécutez le même modèle CloudFormation à partir de la console AWS.
    • L’accès en lecture seule est requis pour effectuer la détection de modèle avec la politique personnalisée.
    AWS CloudFormation met en service et configure les ressources en effectuant des appels vers les services AWS décrits dans votre modèle. Pour en savoir plus, consultez la rubrique Comment fonctionne CloudFormation ?
    Rôles requis :
    • Administrateur AWS Management Console
    • Pour Détection dans le cloud : admin ou discovery_admin
    • Pour Cloud Provisioning and Governance : admin ou sn_cmp.cloud_admin

    Pourquoi et quand exécuter cette tâche

    La politique que vous configurez définit les autorisations AWS que vous pouvez affecter à un utilisateur, à un groupe ou à un rôle. En fonction des services AWS que vous utilisez, spécifiez des actions pour que le service exécute des actions de détection, de mise en service et de cycle de vie à l'aide de Cloud Provisioning and Governance.

    Procédure

    1. Connectez-vous à la AWS console de gestion à l’aide des informations d’identification du compte de service pertinent.
      Si vous avez utilisé un utilisateur IAM ou un rôle IAM pour fournir un accès à l'aide d'informations d'identification temporaires, connectez-vous avec le même utilisateur IAM ou le même rôle IAM.
    2. Ouvrez l'enregistrement utilisateur dans l'instance pour l'utilisateur concerné.
    3. Définissez une politique utilisateur dans la console de gestion d'AWS à l'aide de l'une des méthodes suivantes :
      • Accordez à l'administrateur l'accès à l'instance. Cette méthode donne le même niveau d'accès que l'utilisation de l'ID de clé d'accès et de la clé d'accès secrète. Joignez la politique AdministratorAccess au profil d'utilisateur.
        Remarque :
        pour créer une politique d'utilisateur qui prend uniquement en charge Détection dans le cloud plutôt que la mise en service des ressources dans le cloud, joignez la politique ReadOnlyAccess.
      • Créez une politique personnalisée avec un nom descriptif. Dans le champ Document de politique, écrivez le code qui inclut les API que cette politique autorise à exécuter.
        Remarque :
        l'exemple JSON suivant contient des autorisations pour Détection dans le cloud.
        {
           "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":"*"
              }
           ]
        }
      • L'exemple JSON suivant contient des autorisations pour Détection dans le cloud et 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": "*"
                }
            ]
        }