Utilisation des noms de ressource Amazon pour accéder aux ressources AWS

Vous pouvez utiliser des noms de ressource Amazon (ARN) pour avoir accès à des ressources AWS avec Autonomous Database.

A propos de l'utilisation des noms de ressource Amazon pour accéder aux ressources AWS

Lorsque vous utilisez l'authentification basée sur les rôles ARN avec Autonomous Database, vous pouvez accéder en toute sécurité aux ressources AWS sans créer ni enregistrer d'informations d'identification basées sur des clés d'accès AWS IAM à long terme.

Par exemple, vous pouvez charger des données d'un bucket AWS S3 dans votre instance Autonomous Database, effectuer une opération sur les données, puis réécrire les données modifiées dans le bucket S3. Vous pouvez le faire sans utiliser d'ARN si vous disposez d'informations d'identification utilisateur AWS pour accéder au bucket S3. Toutefois, l'utilisation d'ARN basés sur les rôles pour accéder aux ressources AWS à partir d'Autonomous Database présente les avantages suivants :

  • Vous pouvez créer un accès basé sur les rôles, avec différentes stratégies pour différents utilisateurs ou schémas qui ont besoin d'accéder aux ressources AWS à partir d'une instance Autonomous Database. Vous pouvez ainsi définir une stratégie pour limiter l'accès aux ressources AWS par rôle. Par exemple, définition d'une stratégie limitant l'accès en lecture seule, par rôle, à un bucket S3.
  • Les informations d'identification basées sur ARN offrent une meilleure sécurité car vous n'avez pas besoin de fournir des informations d'identification utilisateur AWS à long terme dans le code pour accéder aux ressources AWS. Autonomous Database gère les informations d'identification temporaires générées à partir de l'opération AWS Assume Role.

Etapes de configuration de l'utilisation d'ARN avec Autonomous Database

Avant de créer des informations d'identification à l'aide d'un ARN dans Autonomous Database, dans AWS, l'administrateur de compte doit définir une stratégie qui vous permet d'accéder aux ressources AWS, telles qu'un bucket S3. Par défaut, les services d'identification ARN ne sont pas activés sur Autonomous Database. L'utilisateur ADMIN active les informations d'identification ARN pour l'utilisateur nécessaire, ce qui lui permet de créer et d'utiliser des informations d'identification ARN sur l'instance Autonomous Database.

Dans AWS, le rôle ARN est l'identificateur de l'accès fourni et peut être consulté sur la console AWS. Pour plus de sécurité, lorsque l'administrateur AWS configure le rôle, les stratégies et la relation de confiance pour le compte AWS, il doit également configurer un ID externe dans la relation de confiance du rôle.

L'ID externe fournit une protection supplémentaire pour la prise de rôles. L'administrateur AWS configure l'ID externe comme l'un des éléments suivants, en fonction de l'instance Autonomous Database :

  • OCID de compartiment

  • OCID de base de données

  • OCID de location

Sur AWS, le rôle ne peut être assumé que par des utilisateurs de confiance identifiés par l'ID externe inclus dans l'URL de demande, où l'ID externe fourni dans la demande correspond à l'ID externe configuré dans la relation de confiance du rôle.

Remarque

La définition de l'ID externe est requise pour la sécurité.

La figure suivante décrit les étapes de configuration :

Description de l'image adb_arn_config_steps.eps
Description de l'illustration adb_arn_config_steps.eps

Etapes d'utilisation des ARN avec DBMS_CLOUD

Chaque ressource AWS possède sa propre identité et la ressource s'authentifie auprès de l'instance Autonomous Database à l'aide des informations d'identification DBMS_CLOUD que vous créez avec des paramètres qui identifient l'ARN. Autonomous Database crée et sécurise les informations d'identification de principal que vous utilisez pour accéder aux ressources AWS.

Pour créer des informations d'identification avec des paramètres ARN pour accéder aux ressources AWS, procédez comme suit :

  1. Effectuez les étapes prérequises dans le compte AWS : dans votre compte AWS, à partir de la console de gestion AWS ou à l'aide de l'interface de ligne de commande, créez les rôles et les stratégies pour l'ARN que vous utilisez avec Autonomous Database et mettez à jour la relation de confiance pour le rôle. Le numéro ARN de l'utilisateur Oracle est configuré lorsque la relation d'approbation du rôle est mise à jour.

    Pour plus d'informations, reportez-vous à Exécution des prérequis de gestion AWS pour utiliser des noms de ressource Amazon (ARN).

  2. Effectuez les étapes prérequises sur Autonomous Database : sur Autonomous Database, vous devez permettre à l'utilisateur ADMIN ou à un autre utilisateur d'utiliser des informations d'identification avec des paramètres ARN pour accéder aux ressources AWS.

    Pour plus d'informations, reportez-vous à Exécution des prérequis Autonomous Database pour utiliser les ARN Amazon.

  3. Créez des informations d'identification avec DBMS_CLOUD.CREATE_CREDENTIAL et fournissez les paramètres qui identifient un rôle AWS. A l'aide de l'objet d'informations d'identification, Autonomous Database peut accéder aux ressources AWS comme indiqué dans les stratégies définies pour le rôle dans le compte AWS.

    Pour plus d'informations sur ces étapes, reportez-vous à Création d'informations d'identification avec les paramètres ARN pour accéder aux ressources AWS.

  4. Utilisez l'objet d'informations d'identification créé à l'étape précédente avec une procédure ou une fonction DBMS_CLOUD qui accepte un paramètre d'informations d'identification, tel que DBMS_CLOUD.COPY_DATA ou DBMS_CLOUD.LIST_OBJECTS.

Exécution des prérequis de gestion AWS pour utiliser les noms de ressource Amazon

A l'aide de la console de gestion AWS ou des API, créez un utilisateur, un rôle, des stratégies et une relation de confiance AWS. Vous devez effectuer ces étapes avant d'utiliser DBMS_CLOUD.CREATE_CREDENTIAL pour créer des informations d'identification avec un paramètre ARN sur Autonomous Database.

Pour utiliser un ARN pour accéder aux ressources AWS, votre administrateur AWS définit les stratégies et un principal qui vous permet d'accéder aux ressources AWS. Par exemple, lors de l'utilisation d'Autonomous Database, vous pouvez avoir besoin d'accéder aux données à partir d'un bucket S3, d'effectuer une opération sur les données, puis de réécrire les données modifiées dans le bucket S3.

Remarque

En fonction de votre configuration AWS existante et de l'ID externe que vous utilisez, vous n'avez pas besoin de créer de rôle et de stratégie pour chaque instance Autonomous Database. Si vous disposez déjà d'un rôle AWS contenant la stratégie nécessaire pour accéder à une ressource, par exemple pour accéder au stockage cloud S3, vous pouvez modifier la relation de confiance afin d'inclure les détails à l'étape 3. De même, si vous disposez déjà d'un rôle avec la relation de confiance nécessaire, vous pouvez utiliser ce rôle pour accéder à toutes vos bases de données dans un compartiment ou une location OCI si vous utilisez un ID externe qui indique l'OCID de compartiment ou l'OCID de location.

A partir de la console de gestion AWS ou à l'aide des API, un administrateur AWS effectue les opérations suivantes :

  1. Créer une stratégie. Dans la stratégie, vous indiquez les droits d'accès aux ressources AWS telles que les buckets S3.

    Pour plus d'informations, reportez-vous à Création d'une stratégie IAM pour accéder aux ressources Amazon S3.

  2. Créez un rôle et associez la stratégie au rôle.
    1. Accédez à la console AWS Management Console et choisissez Identity and Access Management (IAM).
    2. Cliquez sur Créer un rôle.
    3. Sélectionnez Autre compte AWS.
    4. Saisissez votre ID de compte.
      Vous l'utilisez comme valeur temporaire. Ensuite, remplacez-le par l'ID de compte que vous utilisez pour accéder aux ressources AWS.
    5. Dans la zone Options, sélectionnez Exiger un ID externe et entrez un ID externe temporaire, tel que 0000. Vous remplacerez ensuite cet ID externe par une valeur valide.
    6. Cliquez sur Droits d'accès suivants pour attacher les stratégies que vous avez créées à l'étape 1 ou les autres stratégies à appliquer au rôle.
    7. Cliquez sur Balises suivantes et appliquez ou créez des balises selon vos besoins pour le rôle.
    8. Cliquez sur Vérification suivante et ajoutez un nom de rôle et une description de rôle.
    9. Cliquez sur Créer un rôle.

    Utilisez le numéro ARN du rôle avec DBMS_CLOUD.CREATE_CREDENTIAL pour créer des objets d'informations d'identification avec des paramètres ARN afin d'accéder aux ressources AWS.

    Pour plus d'informations, reportez-vous à Création d'un rôle pour déléguer des droits d'accès à un utilisateur IAM.

  3. Indiquez une relation de confiance pour le rôle.
    1. Dans la liste Rôles, sous Nom du rôle, sélectionnez le rôle que vous avez créé.
    2. Sur la page Récapitulatif des rôles pour le rôle sélectionné, sélectionnez l'onglet Relations de confiance.
    3. Dans la relation de confiance, cliquez sur Modifier la relation de confiance.
    4. Modifiez la relation de confiance pour indiquer le paramètre Principal AWS.

      Cet ARN utilisateur AWS est disponible dans la vue CLOUD_INTEGRATIONS. Pour plus d'informations, reportez-vous à Exécution des prérequis Autonomous Database pour utiliser les ARN Amazon.

    5. Modifiez la relation de confiance pour indiquer l'ID externe.

      Sur Autonomous Database lorsque vous créez des informations d'identification AWS ARN avec DBMS_CLOUD.CREATE_CREDENTIAL ou lorsque vous activez AWS ARN avec DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, la valeur du paramètre external_id_type est par défaut database_ocid. Vous pouvez éventuellement définir la valeur external_id_type sur l'une des valeurs prises en charge : database_ocid, compartment_ocid ou tenant_ocid.

      Lorsque vous utilisez l'OCID de base de données en tant qu'ID externe, la relation de confiance de la stratégie ne fait confiance qu'à l'instance Autonomous Database indiquée avec l'OCID. Si vous utilisez un OCID de compartiment, la relation de confiance de la stratégie fait confiance à toutes les instances Autonomous Database du compartiment et vous pouvez utiliser le même rôle ARN pour accorder l'accès aux ressources AWS à n'importe quelle instance Autonomous Database du compartiment indiqué. De même, si vous utilisez l'OCID de location, vous pouvez utiliser le même rôle ARN pour accorder l'accès aux ressources AWS à n'importe quelle instance Autonomous Database dans la location indiquée.

      Auparavant, à l'étape 2, vous définissez l'ID externe de la relation de confiance sur la valeur temporaire 0000.

      Sur AWS, vous configurez la valeur d'ID externe de relation de confiance pour qu'elle corresponde à l'un des éléments suivants :

      • Lorsque le type external_id_type est database_ocid, sur AWS, vous configurez l'ID externe de la relation de confiance du rôle en tant qu'OCID de base de données.

        L'OCID de base de données est disponible en exécutant l'interrogation suivante :

        SELECT cloud_identity FROM v$pdbs;

        Pour plus d'informations, reportez-vous à Obtention des détails de location.

      • Lorsque le type external_id_type est compartment_ocid, sur AWS, vous configurez l'ID externe de la relation de confiance du rôle en tant qu'OCID de compartiment.

        L'OCID de compartiment est disponible sur la page de détails du compartiment à partir de la console Oracle Cloud Infrastructure. Pour rechercher la page de détails du compartiment, dans le menu de navigation de gauche d'Oracle Cloud Infrastructure, cliquez sur Identité et sécurité, puis sélectionnez Compartiments. Sélectionnez le compartiment qui contient l'instance Autonomous Database pour voir l'ID de compartiment.

      • Lorsque le type external_id_type est tenant_ocid, sur AWS, vous configurez l'ID externe de la relation de confiance du rôle en tant qu'OCID de location.

        L'OCID de location est disponible sur la page de détails de la location à partir de la console Oracle Cloud Infrastructure. Pour rechercher la page de détails de location, dans le menu de navigation de gauche Oracle Cloud Infrastructure, cliquez sur Gouvernance et administration, puis sélectionnez Détails de location. L'onglet Informations sur la location affiche l'OCID de location.

      • Lorsque vous définissez la valeur pour ExternalID, la valeur d'OCID doit par défaut être en majuscules. Si vous voulez fournir l'OCID en minuscules, définissez la condition "StringEqualsIgnoreCase" au lieu de "StringEquals" dans le JSON lorsque vous modifiez la relation de confiance.

      Description de l'image arn_aws_create_role_aws_trust_final.png
      Description de l'illustration arn_aws_create_role_aws_trust_final.png

Une fois la configuration du rôle ARN terminée, vous pouvez activer ARN sur l'instance. Pour plus d'informations, reportez-vous à Exécution des prérequis Autonomous Database pour utiliser les ARN Amazon.

Exécution des prérequis Autonomous Database pour utiliser les noms de ressource Amazon

Avant d'utiliser une ressource AWS avec DBMS_CLOUD.CREATE_CREDENTIAL avec un paramètre ARN, l'utilisateur ADMIN doit activer ARN sur l'instance Autonomous Database.

Par défaut, les services d'identification ARN ne sont pas activés sur Autonomous Database. L'utilisateur ADMIN exécute la procédure DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH pour permettre à l'utilisateur ADMIN ou à d'autres utilisateurs de créer des informations d'identification avec des paramètres ARN.

  1. Activez l'utilisation des informations d'identification ARN sur l'instance Autonomous Database.
    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            username => 'adb_user',
            params => JSON_OBJECT( 
                    'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN'));
    END;
    /
    

    Si vous souhaitez que l'utilisateur indiqué dispose de privilèges permettant d'activer les informations d'identification ARN pour d'autres utilisateurs, définissez le paramètre params grant_option sur TRUE.

    Par exemple :

    BEGIN
    DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
         username => 'adb_user',
         params => JSON_OBJECT(
                         'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',
                         'grant_option' value TRUE ));
    END;
    /

    Après avoir exécuté cette commande, adb_user dispose de privilèges permettant d'activer les informations d'identification ARN pour d'autres utilisateurs.

    Par exemple, si vous connectez-vous en tant que adb_user, vous pouvez exécuter la commande suivante :

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            username => 'adb_user2'); 
    END;
    /
    

    Pour plus d'informations, reportez-vous à Procédure ENABLE_PRINCIPAL_AUTH.

  2. Interrogez la vue CLOUD_INTEGRATIONS pour obtenir le nom ARN de l'utilisateur AWS d'Oracle.
    SELECT param_value FROM CLOUD_INTEGRATIONS
            WHERE param_name = 'aws_user_arn';
    
    PARAM_VALUE
    --------------------------------------------  
    arn:aws:iam::account-ID:user/username

    La vue CLOUD_INTEGRATIONS est disponible pour l'utilisateur ADMIN ou pour un utilisateur disposant des privilèges DWROLE.

    L'administrateur AWS utilise la valeur aws_user_arn lors de la configuration de la relation de confiance du rôle AWS avec le rôle et les stratégies sur le système AWS. La fourniture de cette valeur permet à DBMS_CLOUD d'accéder aux ressources AWS côté AWS.

Une fois que vous avez activé ARN sur l'instance Autonomous Database en exécutant DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, les informations d'identification nommées AWS$ARN peuvent être utilisées avec n'importe quelle API DBMS_CLOUD qui prend des informations d'identification en tant qu'entrée. A l'exception des informations d'identification nommées AWS$ARN, vous pouvez également créer des informations d'identification supplémentaires avec des paramètres ARN pour accéder aux ressources AWS. Pour plus d'informations, reportez-vous à Création d'informations d'identification avec les paramètres ARN pour accéder aux ressources AWS.

Création des informations d'identification avec les paramètres de nom de ressource Amazon pour accéder aux ressources AWS

Une fois que l'utilisation d'ARN est activée pour l'instance Autonomous Database et que l'ARN est configuré par l'administrateur AWS, sur Autonomous Database, vous pouvez créer un objet d'informations d'identification avec des paramètres ARN.

Autonomous Database crée et sécurise les informations d'identification de principal que vous utilisez pour accéder aux ressources Amazon lorsque vous fournissez l'objet d'informations d'identification avec des procédures et des fonctions DBMS_CLOUD.

Pour utiliser des ressources Amazon avec Autonomous Database, procédez comme suit :

  1. Créez des informations d'identification à l'aide de la procédure DBMS_CLOUD.CREATE_CREDENTIAL avec le paramètre params pour indiquer la valeur ARN. Par exemple :
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_ARN',
        params =>
            JSON_OBJECT('aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',                                            
                        'external_id_type' value 'database_ocid')
      );
    END;
    /

    Cette opération crée les informations d'identification dans la base de données dans un format crypté. Vous pouvez utiliser n'importe quel nom d'informations d'identification.

    Pour obtenir des informations détaillées sur les paramètres, reportez-vous à la procédure CREATE_CREDENTIAL.

  2. Utilisez une procédure DBMS_CLOUD pour accéder à une ressource Amazon avec les informations d'identification ARN.

    Par exemple, utilisez DBMS_CLOUD.LIST_OBJECTS.

    SELECT object_name FROM DBMS_CLOUD.LIST_OBJECTS(
               credential_name => 'DEF_CRED_ARN',
               location_uri    => 'https://my-bucket.s3.us-west-2.amazonaws.com/');

Mise à jour des informations d'identification avec les paramètres de nom de ressource Amazon pour les ressources AWS

Les informations d'identification ARN que vous utilisez sur Autonomous Database fonctionnent avec le service de jeton AWS qui vous permet d'utiliser des informations d'identification basées sur des rôles temporaires pour accéder aux ressources AWS à partir d'Autonomous Database.

Lorsqu'un administrateur AWS révoque les stratégies, les rôles ou la relation d'approbation, vous devez mettre à jour les informations d'identification ou créer de nouvelles informations d'identification pour accéder aux ressources AWS.

Pour mettre à jour les informations d'identification, procédez comme suit :

  1. Utilisez DBMS_CLOUD.UPDATE_CREDENTIAL pour mettre à jour des informations d'identification basées sur ARN afin de fournir une nouvelle valeur ARN.
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'aws_role_arn',
         value => 'new_ARN_value'); 
    END;
    /

    L'attribut aws_role_arn est ainsi mis à jour avec la nouvelle valeur new_ARN_value pour les informations d'identification nommées DEF_CRED_ARN.

  2. Utilisez DBMS_CLOUD.UPDATE_CREDENTIAL pour mettre à jour des informations d'identification basées sur ARN afin de mettre à jour la valeur d'attribut external_id_type.
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'external_id_type',
         value => 'compartment_ocid'); 
    END;
    /

    La valeur de l'attribut external_id_type est ainsi mise à jour avec la valeur compartment_ocid.

Pour plus d'informations, reportez-vous à Procédure UPDATE_CREDENTIAL et à Procédure CREATE_CREDENTIAL.