1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Secrets Managerを使用してAppRunnerに安全に環境変数を設定する方法

Posted at

はじめに

本記事では、AWS AppRunnerを使用してアプリケーションをデプロイする際に、AWS Secrets Managerを活用して機密情報を安全に管理する方法について解説します。

シークレットの作成

  1. シークレットのタイプ選択

    • 「その他のシークレットタイプ」を選択します。
    • 「キー」と「値」のペアを追加します。
  2. 暗号化キーの選択

    • デフォルトの aws/secretsmanager を選択します。これにより、KMSの設定を行わずにAWSが暗号化を管理してくれます。
  3. 名前とタグの設定

    • シークレットに分かりやすい名前を付けます。
    • 必要に応じてタグを追加します。リソースのアクセス許可は後述しますので、この段階では設定しなくて構いません。
  4. シークレットの作成

    • すべての設定を確認し、「シークレットの作成」をクリックします。

ポリシーにて、カスタムポリシーを作成

AWS IAMでAppRunnerがSecrets Managerにアクセスできるように、カスタムポリシーを作成します。

  1. IAMコンソールに移動し、ポリシー > ポリシーの追加を選択します。
  2. JSONタブを選択し、以下のポリシーをポリシーエディタに貼り付けます。
  3. 次の画面でポリシー名をapprunner-secret-custom-keyと指定し、ポリシーを作成します。

カスタムポリシー作成画面

ポリシーの内容:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "arn:aws:secretsmanager:ap-northeast-1:851725429673:secret:roten-app-secret-MYSQL-HOST-mgA22t"
    }
  ]
}

IAMロールを作成

以下の記事を参考にAppRunnerがSecretManagerにアクセスするためのIAMロールを作成しました。

  1. IAMコンソールのロールを開き、IAMロールを作成していきます。

  2. ユースケースEC2を選択

スクリーンショット 2024-12-21 17.43.49.png


3. 次へをおして許可ポリシーにIAMFullAccess, SecretsManagerReadWrite, apprunner-secret-custom-key(先ほど作成したカスタムポリシーの名前)を選択します。
(参考:https://docs.aws.amazon.com/ja_jp/secretsmanager/latest/userguide/auth-and-access.html#auth-and-access_admin)


4. 次へを押して、ロール名を入力し、カスタム信頼ポリシーを以下のように設定します。

カスタム信頼ポリシーの内容:

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

AppRunnerで環境変数とセキュリティの追加

  1. サービスの設定 > 環境変数で必要な環境変数を追加します。
    スクリーンショット 2024-12-21 18.08.53.png

  2. セキュリティ > アクセス許可で先ほど作成したIAMロールを指定します。これにより、AppRunnerがSecrets Managerからシークレットを取得する権限を持つようになります。

最後に

本記事では、AWS AppRunnerを使用してアプリケーションをデプロイする際に、AWS Secrets Managerを活用して機密情報を安全に管理する方法について解説しました。カスタムポリシーやIAMロールなど、複雑な概念が多く登場し、最初は苦労しましたが、様々な参考記事を活用しながら一つずつ手順を進めることで、目標を達成できました。この調子で、セキュリティにも強い開発ができるエンジニアを目指して頑張っていきたいと思います。

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?