IAM 一時的な認証情報を使用した認証 - Amazon Neptune

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

IAM 一時的な認証情報を使用した認証

Amazon Neptune は、一時的な認証情報を使用したIAM認証をサポートしています。

引き受けたロールを使用して、前のセクションのポリシー例の 1 つのように、IAM認証ポリシーを使用して認証できます。

一時的なセキュリティ認証情報を使用している場合は、AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYSERVICE_REGION に加えて AWS_SESSION_TOKEN を指定する必要があります。

注記

一時的なセキュリティ認証情報は、セッショントークンを含めて、指定した期間が過ぎると失効します。

新しい認証情報をリクエストするときは、セッショントークンを更新する必要があります。詳細については、「一時的なセキュリティ認証情報を使用して へのアクセスをリクエストする」を参照してください。 AWS リソース

以下のセクションでは、一時的な認証情報のアクセスを許可する方法と取得方法について説明します。

一時的な認証情報を使用して認証するには
  1. Neptune クラスターへのアクセス許可を持つ IAMロールを作成します。このロールの作成の詳細については、「Neptune へのアクセスを制御するためのさまざまな種類のIAMポリシーの使用」を参照してください。

  2. 認証情報へのアクセスを許可するロールに信頼関係を追加します。

    AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN を含む一時的な認証情報を取得します。

  3. Neptune クラスターに接続し、一時的な認証情報を使用してリクエストに署名します。リクエストへの接続と署名の詳細については、「との接続と署名 AWS 署名バージョン 4」を参照してください。

一時的な認証情報を取得する方法は、環境に応じてさまざまです。

を使用した一時的な認証情報の取得 AWS CLI

を使用して認証情報を取得するには AWS Command Line Interface (AWS CLI) は、まずロールを引き受けるアクセス許可を付与する信頼関係を に追加する必要があります。 AWS を実行する ユーザー AWS CLI コマンド。

Neptune IAM認証ロールに次の信頼関係を追加します。Neptune IAM認証ロールがない場合は、「」を参照してくださいNeptune へのアクセスを制御するためのさまざまな種類のIAMポリシーの使用

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/test" }, "Action": "sts:AssumeRole" } ] }

ロールに信頼関係を追加する方法については、「」の「既存のロールの信頼関係の編集」を参照してください。 AWS Directory Service 管理ガイド

まだ Neptune ポリシーがロールにアタッチされていない場合は、新しいロールを作成します。Neptune IAM認証ポリシーをアタッチし、信頼ポリシーを追加します。新しいロールの作成の詳細については、「新しいロールの作成」を参照してください。

注記

以下のセクションでは、 があることを前提としています。 AWS CLI がインストールされました。

を実行するには AWS CLI 手動
  1. 次のコマンドを入力して、 を使用して認証情報をリクエストします。 AWS CLI。 ロール ARN、セッション名、プロファイルを独自の値に置き換えます。

    aws sts assume-role --role-arn arn:aws:iam::123456789012:role/NeptuneIAMAuthRole --role-session-name test --profile testprofile
  2. コマンドからの出力例を次に示します。Credentials セクションには、必要な値が含まれます。

    注記

    これ以降に新しい認証情報を取得する必要があるため、Expiration 値を記録します。

    { "AssumedRoleUser": { "AssumedRoleId": "AROA3XFRBF535PLBIFPI4:s3-access-example", "Arn": "arn:aws:sts::123456789012:assumed-role/xaccounts3access/s3-access-example" }, "Credentials": { "SecretAccessKey": "9drTJvcXLB89EXAMPLELB8923FB892xMFI", "SessionToken": "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=", "Expiration": "2016-03-15T00:05:07Z", "AccessKeyId": "ASIAJEXAMPLEXEG2JICEA" } }
  3. 返された認証情報を使用して環境変数を設定します。

    export AWS_ACCESS_KEY_ID=ASIAJEXAMPLEXEG2JICEA export AWS_SECRET_ACCESS_KEY=9drTJvcXLB89EXAMPLELB8923FB892xMFI export AWS_SESSION_TOKEN=AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU= export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or sa-east-1 or eu-north-1 or eu-west-1 or eu-west-2 or eu-west-3 or eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or ap-northeast-1 or ap-northeast-2 or ap-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
  4. 以下のいずれかの方法を使用して接続します。

スクリプトを使用して認証情報を取得する
  1. 以下のコマンドを実行して、jq コマンドをインストールします。スクリプトはこのコマンドを使用して、 の出力を解析します。 AWS CLI コマンド。

    sudo yum -y install jq
  2. テキストエディターで credentials.sh という名前のファイルを作成して、次のテキストを追加します。サービスリージョン、ロール ARN、セッション名、プロファイルを独自の値に置き換えます。

    #!/bin/bash creds_json=$(aws sts assume-role --role-arn arn:aws:iam::123456789012:role/NeptuneIAMAuthRole --role-session-name test --profile testprofile) export AWS_ACCESS_KEY_ID=$(echo "$creds_json" | jq .Credentials.AccessKeyId |tr -d '"') export AWS_SECRET_ACCESS_KEY=$(echo "$creds_json" | jq .Credentials.SecretAccessKey| tr -d '"') export AWS_SESSION_TOKEN=$(echo "$creds_json" | jq .Credentials.SessionToken|tr -d '"') export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or sa-east-1 or eu-north-1 or eu-west-1 or eu-west-2 or eu-west-3 or eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or ap-northeast-1 or ap-northeast-2 or ap-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
  3. 以下のいずれかの方法を使用して接続します。

セットアップ AWS Neptune IAM認証用の Lambda

AWS Lambda には、Lambda 関数が実行されるたびに自動的に認証情報が含まれます。

最初に Lambda サービスにロールを引き受けるアクセス権限を与える信頼関係を追加します。

Neptune IAM認証ロールに次の信頼関係を追加します。Neptune IAM認証ロールがない場合は、「」を参照してくださいNeptune へのアクセスを制御するためのさまざまな種類のIAMポリシーの使用

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ロールに信頼関係を追加する方法については、「」の「既存のロールの信頼関係の編集」を参照してください。 AWS Directory Service管理ガイド

まだ Neptune ポリシーがロールにアタッチされていない場合は、新しいロールを作成します。Neptune IAM認証ポリシーをアタッチし、信頼ポリシーを追加します。新しいロールの作成については、「」の「新しいロールの作成」を参照してください。 AWS Directory Service 管理ガイド

Lambda から Neptune にアクセスするには
  1. にサインインする AWS Management Console を開き、 AWS Lambda の コンソールhttps://console.aws.amazon.com/lambda/

  2. Python バージョン 3.6 用に新しい Lambda 関数を作成します。

  3. Lambda 関数に AWSLambdaVPCAccessExecutionRole ロールを割り当てます。これは、 VPC のみの Neptune リソースにアクセスするために必要です。

  4. Neptune 認証IAMロールを Lambda 関数に割り当てます。

    詳細については、「」を参照してくださいAWS の Lambda アクセス許可 AWS Lambda デベロッパーガイド

  5. IAM 認証 Python サンプルを Lambda 関数コードにコピーします。

    サンプルおよびサンプルコードの詳細については、「例: Python で署名バージョン 4 署名を使用して Neptune に接続」を参照してください。

Neptune IAM認証EC2用の Amazon のセットアップ

Amazon EC2では、インスタンスプロファイルを使用して認証情報を自動的に提供できます。詳細については、「 IAMユーザーガイド」の「インスタンスプロファイルの使用」を参照してください。

まず、Amazon EC2サービスにロールを引き受けるアクセス許可を付与する信頼関係を追加します。

Neptune IAM認証ロールに次の信頼関係を追加します。Neptune IAM認証ロールがない場合は、「」を参照してくださいNeptune へのアクセスを制御するためのさまざまな種類のIAMポリシーの使用

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ロールに信頼関係を追加する方法については、「」の「既存のロールの信頼関係の編集」を参照してください。 AWS Directory Service 管理ガイド

まだ Neptune ポリシーがロールにアタッチされていない場合は、新しいロールを作成します。Neptune IAM認証ポリシーをアタッチし、信頼ポリシーを追加します。新しいロールの作成については、「」の「新しいロールの作成」を参照してください。 AWS Directory Service 管理ガイド

スクリプトを使用して認証情報を取得する
  1. 以下のコマンドを実行して、jq コマンドをインストールします。スクリプトはこのコマンドを使用して、curl コマンドの出力を解析します。

    sudo yum -y install jq
  2. テキストエディターで credentials.sh という名前のファイルを作成して、次のテキストを追加します。サービスリージョンを独自の値に置き換えます。

    role_name=$( curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/ ) creds_json=$(curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/${role_name}) export AWS_ACCESS_KEY_ID=$(echo "$creds_json" | jq .AccessKeyId |tr -d '"') export AWS_SECRET_ACCESS_KEY=$(echo "$creds_json" | jq .SecretAccessKey| tr -d '"') export AWS_SESSION_TOKEN=$(echo "$creds_json" | jq .Token|tr -d '"') export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or sa-east-1 or eu-north-1 or eu-west-1 or eu-west-2 or eu-west-3 or eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or ap-northeast-1 or ap-northeast-2 or ap-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
  3. source コマンドを使用して、bash シェルでスクリプトを実行します。

    source credentials.sh

    さらに、このスクリプトのコマンドをEC2インスタンスの .bashrc ファイルに追加して、ログイン時に自動的に呼び出され、Gremlin コンソールで一時的な認証情報を使用できるようにすることをお勧めします。

  4. 以下のいずれかの方法を使用して接続します。