Secrets Managerシークレット ARN — シークレットの識別

AWS Secrets ManagerシークレットARNを解析し、ランダムサフィックス、バージョンステージ、アプリケーションがARNを使用してシークレットを取得する方法を理解します。

Security

詳細な説明

ランダムサフィックス付きSecrets Manager ARN

AWS Secrets ManagerシークレットARNには、シークレット名に追加されたランダムな6文字のサフィックスが含まれ、各シークレットのARNがアカウント内でグローバルに一意になります。

ARNの例

arn:aws:secretsmanager:us-east-1:123456789012:secret:prod/database/credentials-AbCdEf

解析されたコンポーネント

コンポーネント
Partition aws
Service secretsmanager
Region us-east-1
Account ID 123456789012
Resource Type secret
Resource ID prod/database/credentials-AbCdEf

ランダムサフィックス

末尾の-AbCdEfは、シークレット作成時にSecrets Managerが生成するランダムな6文字のサフィックスです。このサフィックスは、シークレットが削除されて同じ名前で新しいものが作成された場合のARN衝突を防ぎます。サフィックスはARNの一部ですが、シークレット名の一部ではありません

シークレット名の階層

シークレット名にスラッシュを含めて階層的な名前空間を作成できます:

  • prod/database/credentials
  • staging/api/third-party-key
  • shared/certificates/wildcard-cert

この階層は、シークレットの整理や「パス」全体へのアクセスを付与するIAMポリシーの記述に便利です:

{
  "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:prod/*"
}

バージョンステージ

Secrets Managerはシークレットローテーションのためにバージョンステージ(AWSCURRENTAWSPREVIOUSAWSPENDING)をサポートしています。これらはARNの一部ではなく、シークレット値を取得する際にパラメーターとして指定されます。

クロスアカウントシークレット共有

Secrets Managerは、ARNを使用してクロスアカウントアクセスを付与するリソースベースのポリシーをサポートしており、あるアカウントのシークレットを別のアカウントのロールが読み取ることができます。

ユースケース

ランタイムでデータベース資格情報を取得するLambda関数、ECSタスク、EC2インスタンスの設定。シークレットARNはsecretsmanager:GetSecretValue権限を付与するIAMポリシーと、GetSecretValue API呼び出しのアプリケーションコードで参照されます。

試してみる — AWS ARN Parser

フルツールを開く