LoginSignup
0
0

More than 1 year has passed since last update.

【OpenSearch】ECSでIAMロールでアクセス制限したOpenSearchにアクセスする

Posted at

はじめに

下記リンク「IAMロールでアクセス制限したOpenSearch(旧: ElasticSearch)にリクエストする」の発展としてECSからリクエストを送るバージョンを紹介します
https://chariosan.com/2021/09/26/curl_aws-sigv4_iamrole_access_opensearch/

また、(【OpenSearch】IMDSv2のEC2でIAMロールを利用してOpenSearchにアクセスする際に注意すること)もぜひ参考までにご覧ください!

ポイント

・メタデータのIPがEC2とECSでは下記の通り異なる
EC2:169.254.169.254
ECS:169.254.170.2
EC2:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/instancedata-data-retrieval.html
ECS:https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/task-metadata-endpoint-v2.html
・AWS_CONTAINER_CREDENTIALS_RELATIVE_URIという環境変数を利用しよう

前提

タスクロール→対象サービスへの必要アクセスを許可
パスワード認証を利用してロールマッピング
jqコマンド必要
curlコマンドは7.~以上が必要

実施内容

#環境変数設定
CRED=`curl 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`
AWS_ACCESS_KEY_ID=`echo $CRED | jq -r ".AccessKeyId"`
AWS_SECRET_ACCESS_KEY=`echo $CRED | jq -r ".SecretAccessKey"`
AWS_SESSION_TOKEN=`echo $CRED | jq -r ".Token"`
REGION="ap-northeast-1"
SERVICE="es"
#動作確認例
curl -k -XGET  -H "Content-Type: application/json" 'https://<OpenSearchドメイン>/_cat/indices'  -H "X-Amz-Security-Token: ${AWS_SESSION_TOKEN}" \
--aws-sigv4 "aws:amz:${REGION}:${SERVICE}" \
--user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}"
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0