機械翻訳について

「AWSシークレット・マネージャ」でのVaultシークレット資格証明の使用

資格証明シークレット(パスワード)が「AWSシークレット・マネージャ」に格納されるボールト・シークレット資格証明の使用について説明します。

ボールト・シークレット資格証明を使用してクラウド・リソースにアクセスしたり、データベース・リンクを使用して他のデータベースにアクセスしたり、ユーザー名/パスワード・タイプの資格証明が必要な任意の場所で使用できます。

「AWSシークレット・マネージャ」を使用してVaultシークレット資格証明を作成する前提条件

ボールト・シークレット資格証明を「AWSシークレット・マネージャ」で使用するために必要な前提条件について説明します。

シークレットが「AWSシークレット・マネージャ」に格納されるボールト・シークレット資格証明を作成するには、最初に必要な前提条件を実行します。

  1. 「AWSシークレット・マネージャ」を使用してシークレットを作成し、AWSシークレットARNをコピーします。

    詳細については、「AWSシークレット・マネージャ」を参照してください。

  2. Amazonリソース名(ARN)を使用するには、AWS管理の前提条件を実行します。
  3. AWSプリンシパル認証を有効にして、「AWSシークレット・マネージャ」のシークレットへのアクセスを提供します。

    たとえば、Autonomous Databaseインスタンスで次を実行します:

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

    詳細については、「ENABLE_PRINCIPAL_AUTHプロシージャ」「AWSリソースにアクセスするためのAmazonリソース名(ARN)の使用について」を参照してください。

  4. 「AWSシークレット・マネージャ」のシークレットにアクセスするための権限をAmazonリソース名(ARN)に提供するようにAWSを設定します。

    AWSコンソールで、シークレットへの読取りアクセス権をプリンシパル認証資格証明に付与する必要があります。

    1. AWSコンソールで、IAMに移動し、Access Managementで「ロール」を選択します。
    2. ロールを選択します。
    3. 権限タブで、「権限を追加」「インライン・ポリシーの作成」をクリックします。
    4. サービス・セクションで、サービスとして「シークレット・マネージャ」を選択します。
    5. アクション・セクションで、「読取り」アクセス・レベルを選択します。
    6. リソース・セクションで、「ARNの追加」をクリックし、シークレットにARNを指定し、「追加」をクリックし、「ポリシーの確認」をクリックしてポリシー名を指定し、「ポリシーの作成」をクリックします。
    7. Permissionタブに戻り、インライン・ポリシーがアタッチされていることを確認します。

「AWSシークレット・マネージャ」を使用したVaultシークレット資格証明の作成

資格証明で「AWSシークレット・マネージャ」シークレットを使用するステップについて説明します。

これにより、シークレットを「AWSシークレット・マネージャ」に格納し、作成した資格証明とともにシークレットを使用してクラウド・リソースにアクセスしたり、他のデータベースにアクセスできます。

シークレットがAWSシークレット・マネージャに格納されるボールト・シークレット資格証明を作成するには:

  1. 「AWSシークレット・マネージャ」にシークレットを作成し、インライン・ポリシーを作成して、Autonomous Database「AWSシークレット・マネージャ」のシークレットにアクセスできるようにします。
  2. DBMS_CLOUD.CREATE_CREDENTIALを使用して、ボールト・シークレット資格証明を作成し、「AWSシークレット・マネージャ」シークレットにアクセスします。

    たとえば:

    BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name      => 'AWS_SECRET_CRED',
        params               => JSON_OBJECT( 
             'username'   value 'access_key',
             'secret_id'  value 'arn:aws:secretsmanager:region:account-ID:secret:secret_name' ));
    END;
    /

    説明:

    • username: 元の資格証明のユーザー名です。 任意のタイプのユーザー名/パスワード資格証明のユーザー名にできます。

    • secret_id: ボールト・シークレットAWS ARNです。

    ボールト・シークレット資格証明を作成するには、DBMS_CLOUDパッケージに対するEXECUTE権限が必要です。

    詳細については、「CREATE_CREDENTIALプロシージャ」を参照してください。

  3. 資格証明を使用してクラウド・リソースにアクセスします。

    たとえば:

    SELECT count(*) FROM DBMS_CLOUD.LIST_OBJECTS(
         'AWS_SECRET_CRED', 
         'https://s3-us-west-2.amazonaws.com/adb/' );

ノート:

12時間ごとに、シークレット(パスワード)は「AWSシークレット・マネージャ」のコンテンツからリフレッシュされます。 「AWSシークレット・マネージャ」のシークレット値を変更すると、Autonomous Databaseインスタンスが最新のシークレット値を取得するのに最大12時間かかる場合があります。

DBMS_CLOUD.REFRESH_VAULT_CREDENTIALを実行して、ボールト・シークレット資格証明をすぐにリフレッシュします。 このプロシージャは、ボールト・シークレットの最新バージョンを「AWSシークレット・マネージャ」から取得します。 詳細については、「REFRESH_VAULT_CREDENTIALプロシージャ」を参照してください。