Skip To Content

Stratégies IAM pour ArcGIS Enterprise on Amazon Web Services

Amazon Identity and Access Management (IAM) contrôle l’accès aux ressources Amazon Web Services (AWS). Les exemples de snippets JSON suivants illustrent les stratégies IAM requises pour l’accès à des ressources spécifiques utilisées par ArcGIS Enterprise.

Exécuter ArcGIS Enterprise Cloud Builder for AWS

Si vous exécutez l’application ArcGIS Enterprise Cloud Builder for AWS ou ArcGIS Enterprise Cloud Builder Command Line Interface for Amazon Web Services pour créer un déploiement, créez une stratégie IAM comme décrit ci-dessous et affectez-la à un utilisateur IAM. Vous utiliserez les identifiants de connexion de cet utilisateur, comme l’ID de la clé d’accès et la clé d’accès secrète, pour vous connecter à Cloud Builder.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            
            "Action": [
                "rds:*",
                "events:*",
                "logs:*",
                "dynamodb:*",
                "autoscaling:*",
                "acm:*",
                "s3:*",
                "cloudformation:*",
                "elasticloadbalancing:*",
                "iam:*",
                "cloudwatch:*",
                "ssm:*",
                "ssmmessages:*",
                "lambda:*",
                "route53:*",
                "ec2:*",
		   "ec2messages:*",
                "secretsmanager:*"
            ],
	      "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

Modèles CloudFormation de Esri

Lorsque vous exécutez les modèles AWS CloudFormation fournis par Esri, ils créent un rôle et une stratégie IAM. Cette stratégie est décrite ci-dessous.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "autoscaling:DescribeAutoScalingGroups",
                "autoscaling:DescribeAutoScalingInstances",
                "autoscaling:DescribeLaunchConfigurations",
                "autoscaling:DescribeLifecycleHooks",
                "autoscaling:DescribeLifecycleHookTypes",
                "autoscaling:DescribeLoadBalancers",
                "autoscaling:DescribeTags",
                "autoscaling:AttachInstances",
                "autoscaling:AttachLoadBalancers",
                "autoscaling:AttachLoadBalancerTargetGroups",
                "autoscaling:CompleteLifecycleAction",
                "autoscaling:DeleteLifecycleHook",
                "autoscaling:DetachInstances",
                "autoscaling:DetachLoadBalancers",
                "autoscaling:DetachLoadBalancerTargetGroups",
                "autoscaling:PutLifecycleHook",
                "autoscaling:UpdateAutoScalingGroup"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackResources",
                "cloudformation:DescribeStackResource",
                "cloudformation:SignalResource"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "dynamodb:*",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ec2:DescribeAddresses",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRegions",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:ModifyInstanceMetadataOptions",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ec2messages:GetEndpoint",
                "ec2messages:GetMessages",
                "ec2messages:AcknowledgeMessage",
                "ec2messages:DeleteMessage",
                "ec2messages:FailMessage",
                "ec2messages:SendReply"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "elasticloadbalancing:ConfigureHealthCheck",
                "elasticloadbalancing:CreateLoadBalancerListeners",
                "elasticloadbalancing:CreateLoadBalancerPolicy",
                "elasticloadbalancing:CreateRule",
                "elasticloadbalancing:DeleteLoadBalancerListeners",
                "elasticloadbalancing:DeleteLoadBalancerPolicy",
                "elasticloadbalancing:DescribeLoadBalancers",
                "elasticloadbalancing:DescribeListeners",
                "elasticloadbalancing:DescribeLoadBalancerAttributes",
                "elasticloadbalancing:DescribeLoadBalancerPolicies",
                "elasticloadbalancing:DescribeRules",
                "elasticloadbalancing:DescribeTags",
                "elasticloadbalancing:DescribeTargetGroupAttributes",
                "elasticloadbalancing:DescribeTargetGroups",
                "elasticloadbalancing:DeleteRule",
                "elasticloadbalancing:DeregisterTargets",
                "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
                "elasticloadbalancing:ModifyListener",
                "elasticloadbalancing:ModifyLoadBalancerAttributes",
                "elasticloadbalancing:ModifyRule",
                "elasticloadbalancing:RegisterTargets",
                "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
                "elasticloadbalancing:SetLoadBalancerListenerSSLCertificate",
                "elasticloadbalancing:SetLoadBalancerPoliciesOfListener",
                "elasticloadbalancing:SetRulePriorities"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "events:DescribeRule",
                "events:PutRule",
                "events:DeleteRule",
                "events:DisableRule",
                "events:EnableRule",
                "events:PutEvents",
                "events:PutTargets",
                "events:RemoveTargets"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::0123456789:role/XXXXXXXX",
            "Effect": "Allow"
        },
        {
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:PutMetricFilter"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:GetBucketPolicy",
                "s3:GetObject",
                "s3:DeleteObjectTagging",
                "s3:PutBucketTagging",
                "s3:PutObjectTagging",
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:DeleteObject",
                "s3:PutObject"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssm:ListAssociations",
                "ssm:DescribeAssociation",
                "ssm:DescribeDocument",
                "ssm:DescribeInstanceInformation",
                "ssm:GetDeployablePatchSnapshotForInstance",
                "ssm:GetDocument",
                "ssm:GetManifest",
                "ssm:GetParameter",
                "ssm:GetParameters",
                "ssm:ListCommands",
                "ssm:ListCommandInvocations",
                "ssm:ListInstanceAssociations",
                "ssm:PutConfigurePackageResult",
                "ssm:DeleteAssociation",
                "ssm:PutComplianceItems",
                "ssm:PutInventory",
                "ssm:SendCommand",
                "ssm:StartAutomationExecution",
                "ssm:UpdateAssociationStatus",
                "ssm:UpdateInstanceAssociationStatus",
                "ssm:UpdateInstanceInformation"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Stocker le répertoire de contenu Portal for ArcGIS dans un paquet S3

Pour stocker le répertoire de contenu Portal for ArcGIS dans un paquet Amazon Simple Storage Service (S3), vous avez besoin d’un utilisateur ou d’un rôle IAM doté de la stratégie IAM suivante :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "<statement-id>",
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:PutObject",
                "s3:ListBucket",
                "s3:CreateBucket",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::<portal-content-bucket-name>/*",
                "arn:aws:s3:::<portal-content-bucket-name>"
            ]
        }
    ]
}

Remplacez les valeurs entre chevrons (<>) par des valeurs spécifiques à votre déploiement.

2012-10-17 est la version du format de document de stratégie qui s’affiche ici. Si vous modifiez la date de version, le format de document devra peut-être être changé.

Stocker le répertoire du magasin de configuration ArcGIS Server dans S3 et DynamoDB

Pour stocker le répertoire du magasin de configuration ArcGIS Server à l’aide des services de stockage AWS, vous avez besoin d’un utilisateur ou d’un rôle IAM doté de la stratégie IAM suivante :

{  
   "Version":"2012-10-17",
   "Statement":[  
      {  
         "Sid":"<statement-id1>",
         "Action":[  
            "s3:ListBucket",
            "s3:GetBucketLocation",
            "s3:GetBucketPolicy",
            "s3:GetObject",
            "s3:DeleteObjectTagging",
            "s3:PutBucketTagging",
            "s3:PutObjectTagging",
            "s3:CreateBucket",
            "s3:DeleteBucket",
            "s3:DeleteObject",
            "s3:PutObject"
         ],
         "Effect":"Allow",
         "Resource":[  
            "arn:aws:s3:::arcgis-config-store-*",
            "arn:aws:s3:::arcgis-config-store-*/*"
         ]
      },
      {  
         "Sid":"<statement-id2>",
         "Action":[  
            "dynamodb:UntagResource",
            "dynamodb:PutItem",
            "dynamodb:ListTables",
            "dynamodb:DeleteItem",
            "dynamodb:Scan",
            "dynamodb:ListTagsOfResource",
            "dynamodb:Query",
            "dynamodb:UpdateItem",
            "dynamodb:DeleteTable",
            "dynamodb:CreateTable",
            "dynamodb:TagResource",
            "dynamodb:DescribeTable",
            "dynamodb:GetItem",
            "dynamodb:UpdateTable",
            "dynamodb:GetRecords"
         ],
         "Effect":"Allow",
         "Resource":[  
            "arn:aws:dynamodb:*:*:table/ArcGISConfigStores",
            "arn:aws:dynamodb:*:*:table/ArcGISConfigStore.*"
         ]
      }
   ]
}

Remplacez les valeurs entre chevrons (<>) par des valeurs spécifiques à votre déploiement.

2012-10-17 est la version du format de document de stratégie qui s’affiche ici. Si vous modifiez la date de version, le format de document devra peut-être être changé.

Caches de stockage dans un paquet S3

Pour enregistrer un paquet S3 en tant que répertoire cloud en vue du stockage et de l’accès aux caches de carte et d’imagerie, votre utilisateur ou rôle IAM requiert au minimum la stratégie IAM suivante :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "<statement-id>",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:GetBucketAcl",
                "s3:GetObjectVersion",
																"s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::<cache-bucket-name>/*",
                "arn:aws:s3:::<cache-bucket-name>"
            ]
        }
    ]
}

Remplacez les valeurs entre chevrons (<>) par des valeurs spécifiques à votre déploiement.

2012-10-17 est la version du format de document de stratégie qui s’affiche ici. Si vous modifiez la date de version, le format de document devra peut-être être changé.

Utilisation d’un paquet S3 en tant que partage de fichiers Big Data

Pour enregistrer un paquet S3 en tant que partage de fichier Big Data, votre utilisateur ou rôle IAM requiert au minimum la stratégie IAM suivante :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "<statement-id>",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:AbortMultipartUpload"
            ],
            "Resource": [
                "arn:aws:s3:::<bdfs-bucket-name>/*",
                "arn:aws:s3:::<bdfs-bucket-name>"
            ]
        }
    ]
}

Remplacez les valeurs entre chevrons (<>) par des valeurs spécifiques à votre déploiement.

2012-10-17 est la version du format de document de stratégie qui s’affiche ici. Si vous modifiez la date de version, le format de document devra peut-être être changé.

Utilisation d’un paquet S3 en tant que répertoire raster

Pour enregistrer un paquet S3 en tant que répertoire raster, votre utilisateur ou rôle IAM requiert au minimum la stratégie IAM suivante :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "<statement-id>",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:GetBucketAcl",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::<raster-store-bucket-name>/*",
                "arn:aws:s3:::<raster-store-bucket-name>"
            ]
        }
    ]
}

Remplacez les valeurs entre chevrons (<>) par des valeurs spécifiques à votre déploiement.

2012-10-17 est la version du format de document de stratégie qui s’affiche ici. Si vous modifiez la date de version, le format de document devra peut-être être changé.

Utiliser un paquet S3 pour les sauvegardes générées à partir de l’utilitaire webgisdr

Si vous employez l’utilitaire webgisdr installé avec Portal for ArcGIS pour créer des sauvegardes dans un paquet S3 sur AWS, votre utilisateur ou rôle IAM requiert des stratégies de création des fichiers de sauvegarde et des stratégies de restauration de déploiement à partir de ces fichiers de sauvegarde.

Les paramètres de stratégie suivants sont les paramètres minimum requis lors de l’utilisation de l’utilitaire webgisdr pour créer une sauvegarde dans un paquet S3 :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "<statement-id>",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetBucketAcl",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::<webgisdr-bucket-name>",
                "arn:aws:s3:::<portal-content-backup-bucket-name>",
                "arn:aws:s3:::<webgisdr-bucket-name>/*",
                "arn:aws:s3:::<portal-content-backup-bucket-name>/*"
            ]
        }
    ]
}

Les paramètres de stratégie suivants sont les paramètres minimum requis lors de l’utilisation de l’utilitaire webgisdr pour restaurer un déploiement à partir de fichiers de sauvegarde stockés dans un paquet S3 :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "<statement-id>",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:GetBucketAcl",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::<webgisdr-bucket-name>",
                "arn:aws:s3:::<portal-content-backup-bucket-name>",
                "arn:aws:s3:::<webgisdr-bucket-name>/*",
                "arn:aws:s3:::<portal-content-backup-bucket-name>/*"
            ]
        }
    ]
}

Remplacez les valeurs entre chevrons (<>) par des valeurs spécifiques à votre déploiement.

2012-10-17 est la version du format de document de stratégie qui s’affiche ici. Si vous modifiez la date de version, le format de document devra peut-être être changé.