

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Spécification de AWS Glue la ressource ARNs
<a name="glue-specifying-resource-arns"></a>

DansAWS Glue, vous pouvez contrôler l'accès aux ressources à l'aide d'une politique Gestion des identités et des accès AWS (IAM). Dans une politique, vous utilisez un Amazon Resource Name (ARN) pour identifier la ressource à laquelle la politique s'applique. Toutes les ressources ne sont pas prises en AWS Glue charge ARNs.

**Topics**
+ [Catalogue de données ARNs](#data-catalog-resource-arns)
+ [ARNs pour les objets hors catalogue dans AWS Glue](#non-catalog-resource-arns)
+ [Contrôle d'accès pour les opérations d'API uniques AWS Glue non liées à un catalogue](#non-catalog-singular-apis)
+ [Contrôle d'accès pour les opérations d'API AWS Glue non liées à un catalogue qui extraient plusieurs éléments](#non-catalog-plural-apis)
+ [Contrôle d'accès pour les AWS Glue opérations d' BatchGet API hors catalogue](#non-catalog-batch-get-apis)

## Catalogue de données ARNs
<a name="data-catalog-resource-arns"></a>

Les ressources du catalogue de données ont une structure hiérarchique, avec `catalog` comme racine.

```
arn:aws:glue:{{region}}:{{account-id}}:catalog
```

Chaque AWS compte possède un seul catalogue de données dans une AWS région avec l'identifiant de compte à 12 chiffres comme identifiant de catalogue. Les ressources sont ARNs associées à des ressources uniques, comme indiqué dans le tableau suivant.


| **Type de ressource**  |  **Format ARN**  | 
| --- | --- | 
| Catalogue | `arn:aws:glue:{{region}}:{{account-id}}:catalog`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:catalog` | 
| Base de données | `arn:aws:glue:{{region}}:{{account-id}}:database/{{database name}}`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:database/db1` | 
| Table | `arn:aws:glue:{{region}}:{{account-id}}:table/{{database name}}/{{table name}}`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:table/db1/tbl1` | 
| Catalogue de tables S3 fédérées (tous les compartiments de tables) |  `arn:aws:glue:{{region}}:{{account-id}}:catalog/s3tablescatalog` <br />Par exemple : `arn:aws:glue:us-east-1:123456789012:catalog/s3tablescatalog` | 
| Catalogue de compartiments de tables S3 fédérées (catalogue enfant) |  `arn:aws:glue:{{region}}:{{account-id}}:catalog/s3tablescatalog/{{bucket name}}` <br />Par exemple : `arn:aws:glue:us-east-1:123456789012:catalog/s3tablescatalog/amzn-s3-demo-bucket1` | 
| Base de données de tables S3 fédérées |  `arn:aws:glue:{{region}}:{{account-id}}:database/s3tablescatalog/{{child catalog name}}/{{database name}}` <br />Par exemple : `arn:aws:glue:us-east-1:123456789012:database/s3tablescatalog/amzn-s3-demo-bucket1/nsdb1` | 
| Table S3 fédérée |  `arn:aws:glue:{{region}}:{{account-id}}:table/s3tablescatalog/{{child catalog name}}/{{database name}}/{{table name}}` <br />Par exemple : `arn:aws:glue:us-east-1:123456789012:table/s3tablescatalog/amzn-s3-demo-bucket1/nsdb1/s3tbl1` | 
| Catalogue de tables S3 fédérées (un compartiment de tables unique enregistré avec Lake Formation) | `arn:aws:glue:{{region}}:{{account-id}}:catalog`/{{catalog name}} <br />Par exemple : `arn:aws:glue:us-east-1:123456789012:catalog/amzn-s3-demo-bucket1`  | 
| Base de données de tables S3 fédérées  | `arn:aws:glue:{{region}}:{{account-id}}:catalog`/{{catalog name}}/{{database name}}<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:database/amzn-s3-demo-bucket1/nsdb1` | 
| Table S3 fédérée | `arn:aws:glue:{{region}}:{{account-id}}:catalog`/{{catalog name}}/{{database name}}/{{table name}}<br /> Par exemple : `arn:aws:glue:us-east-1:123456789012:table/amzn-s3-demo-bucket1/{{nsdb1}}/s3tbl1`  | 
| Catalogue fédéré ou géré (catalogue de premier niveau dans un catalogue multiple) |  `arn:aws:glue:{{region}}:{{account-id}}:catalog/{{top-level catalog name}}` <br />Par exemple : `arn:aws:glue:us-east-1:123456789012:catalog/nscatalog`<br />Le format ARN d’un catalogue géré suit la même structure. | 
| Catalogue fédéré à plusieurs niveaux (catalogue enfant dans un catalogue à plusieurs niveaux) |  `arn:aws:glue:{{region}}:{{account-id}}:catalog/{{top-level catalog name}}/{{child catalog name}}` <br />Par exemple : `arn:aws:glue:us-east-1:123456789012:catalog/nscatalog/dbcatalog` | 
| Base de données fédérée |  `arn:aws:glue:{{region}}:{{account-id}}:database/{{name space catalog name}}/{{child catalog name}}/{{database name}}` <br />Par exemple : `arn:aws:glue:us-east-1:123456789012:database/nscatalog/dbcatalog/schemadb` | 
| Table fédérée |  `arn:aws:glue:{{region}}:{{account-id}}:table/{{name space catalog name}}/{{child catalog name}}/{{database name}}/{{table name}}` <br />Par exemple : `arn:aws:glue:us-east-1:123456789012:table/nscatalog/dbcatalog/schemadb/rstbl1` | 
| Conteneur de liens du catalogue | `arn:aws:glue:{{region}}:{{account-id}}:catalog`/{{link container name}}<br />Par exemple : `arn:aws:glue:glue:us-east-1:123456789012:catalog`/linkcontainer-example  | 
| Base de données | `arn:aws:glue:{{region}}:{{account-id}}:catalog`/{{link container name}}/{{database name}}<br />Par exemple : `arn:aws:glue:glue:us-east-1:123456789012:database`/linkcontainer-example/link-db  | 
| Fonction définie par l'utilisateur | `arn:aws:glue:{{region}}:{{account-id}}:userDefinedFunction/{{database name}}/{{user-defined function name}}`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:userDefinedFunction/db1/func1` | 
| Connexion | `arn:aws:glue:{{region}}:{{account-id}}:connection/{{connection name}}`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:connection/connection1` | 
| Séance interactive | `arn:aws:glue:{{region}}:{{account-id}}:session/{{interactive session id}}`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:session/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111` | 

Pour permettre un contrôle d'accès précis, vous pouvez les utiliser ARNs dans vos politiques IAM et vos politiques de ressources pour accorder ou refuser l'accès à des ressources spécifiques. Les caractères génériques sont autorisés dans les politiques. Par exemple, l'ARN suivant correspond à toutes les tables de la base de données `default`.

```
arn:aws:glue:us-east-1:123456789012:table/default/*
```

**Important**  
Toutes les opérations effectuées sur une ressource du catalogue de données requièrent une autorisation sur la ressource et tous les ancêtres de cette ressource. Par exemple, la création d'une partition pour une table nécessite l'autorisation sur la table, la base de données et le catalogue où se trouve la table. L'exemple suivant montre l'autorisation requise pour créer des partitions sur la table `PrivateTable` dans la base de données `PrivateDatabase` du catalogue de données.  

```
{
   "Sid": "GrantCreatePartitions",
   "Effect": "Allow",
   "Action": [
       "glue:BatchCreatePartitions"
   ],
   "Resource": [
       "arn:aws:glue:us-east-1:123456789012:table/PrivateDatabase/PrivateTable",
       "arn:aws:glue:us-east-1:123456789012:database/PrivateDatabase",
       "arn:aws:glue:us-east-1:123456789012:catalog"
   ]
}
```
Outre l'autorisation sur la ressource et tous ses ancêtres, toutes les opérations de suppression nécessitent une autorisation sur tous les enfants de cette ressource. Par exemple, pour supprimer une base de données, il faut l'autorisation sur toutes les tables et les fonctions définies par l'utilisateur dans la base de données, ainsi que sur la base de données et le catalogue dans lequel se trouve la base de données. L'exemple suivant montre l'autorisation requise pour supprimer une base de données `PrivateDatabase` dans le catalogue de données.  

```
{
   "Sid": "GrantDeleteDatabase",
   "Effect": "Allow",
   "Action": [
       "glue:DeleteDatabase"
   ],
   "Resource": [
       "arn:aws:glue:us-east-1:123456789012:table/PrivateDatabase/*",
       "arn:aws:glue:us-east-1:123456789012:userDefinedFunction/PrivateDatabase/*",
       "arn:aws:glue:us-east-1:123456789012:database/PrivateDatabase",
       "arn:aws:glue:us-east-1:123456789012:catalog"
   ]
}
```
En résumé, les actions sur les ressources du catalogue de données suivent ces règles d'autorisation :  
Les actions sur le catalogue requièrent l'autorisation sur le catalogue uniquement.
Les actions sur une base de données requièrent l'autorisation sur la base de données et le catalogue.
Les actions de suppression sur une base de données requièrent l'autorisation sur la base de données et le catalogue, ainsi que sur toutes les tables et les fonctions définies par l'utilisateur dans la base de données.
Les actions sur une table, une partition ou une version de table requièrent l'autorisation sur la table, la base de données et le catalogue.
Les actions sur une fonction définie par l'utilisateur requièrent l'autorisation sur la fonction définie par l'utilisateur, la base de données et le catalogue.
Les actions sur une connexion requièrent l'autorisation sur la connexion et le catalogue.

## ARNs pour les objets hors catalogue dans AWS Glue
<a name="non-catalog-resource-arns"></a>

Certaines ressources AWS Glue autorisent les permissions au niveau des ressources pour contrôler l'accès à l'aide d'un ARN. Vous pouvez les utiliser ARNs dans vos politiques IAM pour permettre un contrôle d'accès précis. Le tableau suivant répertorie les ressources qui peuvent contenir des ressources ARNs.


| **Type de ressource**  |  **Format ARN**  | 
| --- | --- | 
| crawler | `arn:aws:glue:{{region}}:{{account-id}}:crawler/{{crawler-name}}`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:crawler/mycrawler` | 
| Tâche | `arn:aws:glue:{{region}}:{{account-id}}:job/{{job-name}}`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:job/testjob` | 
| Déclencheur | `arn:aws:glue:{{region}}:{{account-id}}:trigger/{{trigger-name}}`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:trigger/sampletrigger` | 
| Point de terminaison de développement | `arn:aws:glue:{{region}}:{{account-id}}:devEndpoint/{{development-endpoint-name}}`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:devEndpoint/temporarydevendpoint` | 
| Transformation de machine learning | `arn:aws:glue:{{region}}:{{account-id}}:mlTransform/{{transform-id}}`<br />Par exemple : `arn:aws:glue:us-east-1:123456789012:mlTransform/tfm-1234567890` | 

## Contrôle d'accès pour les opérations d'API uniques AWS Glue non liées à un catalogue
<a name="non-catalog-singular-apis"></a>

Les opérations d'API AWS Glue non liées à un catalogue *uniques* agissent sur un seul élément (point de terminaison de développement). Des exemples sont `GetDevEndpoint`, `CreateUpdateDevEndpoint` et `UpdateDevEndpoint`. Pour ces opérations, une politique doit placer le nom de l'API dans le bloc `"action"` et l'ARN de la ressource dans le bloc `"resource"`.

Supposons que vous souhaitiez autoriser un utilisateur à appeler l'opération `GetDevEndpoint`. La politique suivante accorde les autorisations nécessaires minimales à un point de terminaison nommé `myDevEndpoint-1`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "MinimumPermissions",
      "Effect": "Allow",
      "Action": "glue:GetDevEndpoint",
      "Resource": "arn:aws:glue:{{us-east-1}}:{{111122223333}}:devEndpoint/myDevEndpoint-1"
    }
  ]
}
```

------

La politique suivante autorise l'accès `UpdateDevEndpoint` aux ressources qui correspondent à `myDevEndpoint-` avec un caractère générique (\*).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PermissionWithWildcard",
      "Effect": "Allow",
      "Action": "glue:UpdateDevEndpoint",
      "Resource": "arn:aws:glue:{{us-east-1}}:{{111122223333}}:devEndpoint/myDevEndpoint-*"
    }
  ]
}
```

------

Vous pouvez combiner les deux politiques, comme dans l'exemple suivant. Il se peut que vous constatiez `EntityNotFoundException` pour n'importe quel point de terminaison de développement dont le nom commence par `A`. Toutefois, une erreur d'accès refusé est renvoyé lorsque vous essayez d'accéder à d'autres points de terminaison de développement.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CombinedPermissions",
      "Effect": "Allow",
      "Action": [
        "glue:UpdateDevEndpoint",
        "glue:GetDevEndpoint"
      ],
      "Resource": "arn:aws:glue:{{us-east-1}}:{{111122223333}}:devEndpoint/A*"
    }
  ]
}
```

------

## Contrôle d'accès pour les opérations d'API AWS Glue non liées à un catalogue qui extraient plusieurs éléments
<a name="non-catalog-plural-apis"></a>

Certaines opérations d'API AWS Glue extraient plusieurs éléments (par exemple, plusieurs points de terminaison de développement) ; par exemple, `GetDevEndpoints`. Pour cette opération, vous ne pouvez spécifier qu'une ressource générique (\*), et non une ressource spécifique ARNs.

Par exemple, pour inclure `GetDevEndpoints` dans la politique, la ressource doit être définie avec le caractère générique (\*). Les opérations uniques (`GetDevEndpoint`, `CreateDevEndpoint` et `DeleteDevendpoint`) sont également définies pour toutes les ressources (\*) de l'exemple.

```
{
            "Sid": "PluralAPIIncluded",
            "Effect": "Allow",
            "Action": [
                "glue:GetDevEndpoints",
                "glue:GetDevEndpoint",
                "glue:CreateDevEndpoint",
                "glue:UpdateDevEndpoint"
            ],
            "Resource": [
                "*"
            ]
}
```

## Contrôle d'accès pour les AWS Glue opérations d' BatchGet API hors catalogue
<a name="non-catalog-batch-get-apis"></a>

Certaines opérations d'API AWS Glue extraient plusieurs éléments (par exemple, plusieurs points de terminaison de développement) ; par exemple, `BatchGetDevEndpoints`. Pour cette opération, vous pouvez spécifier un ARN pour limiter la portée des ressources qui sont accessibles.

Par exemple, pour autoriser l'accès à un point de terminaison de développement spécifique, incluez `BatchGetDevEndpoints` dans la politique avec son ARN de ressource.

```
{
            "Sid": "BatchGetAPIIncluded",
            "Effect": "Allow",
            "Action": [
                "glue:BatchGetDevEndpoints"
            ],
            "Resource": [
                "arn:aws:glue:us-east-1:123456789012:devEndpoint/de1" 
            ]
}
```

Avec cette politique, vous pouvez accéder correctement au point de terminaison de développement nommé `de1`. Toutefois, si vous tentez d'accéder au point de terminaison de développement nommé `de2`, une erreur est renvoyée.

```
An error occurred (AccessDeniedException) when calling the BatchGetDevEndpoints operation: No access to any requested resource.
```

**Important**  
Pour d'autres approches de la configuration des politiques IAM, telles que l'utilisation des opérations d'API `List` et `BatchGet`, consultez [Exemples de politiques basées sur l'identité pour Glue AWS](security_iam_id-based-policy-examples.md). 