Secrets Managerシークレット ARN — シークレットの識別
AWS Secrets ManagerシークレットARNを解析し、ランダムサフィックス、バージョンステージ、アプリケーションがARNを使用してシークレットを取得する方法を理解します。
詳細な説明
ランダムサフィックス付き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/credentialsstaging/api/third-party-keyshared/certificates/wildcard-cert
この階層は、シークレットの整理や「パス」全体へのアクセスを付与するIAMポリシーの記述に便利です:
{
"Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:prod/*"
}
バージョンステージ
Secrets Managerはシークレットローテーションのためにバージョンステージ(AWSCURRENT、AWSPREVIOUS、AWSPENDING)をサポートしています。これらはARNの一部ではなく、シークレット値を取得する際にパラメーターとして指定されます。
クロスアカウントシークレット共有
Secrets Managerは、ARNを使用してクロスアカウントアクセスを付与するリソースベースのポリシーをサポートしており、あるアカウントのシークレットを別のアカウントのロールが読み取ることができます。
ユースケース
ランタイムでデータベース資格情報を取得するLambda関数、ECSタスク、EC2インスタンスの設定。シークレットARNはsecretsmanager:GetSecretValue権限を付与するIAMポリシーと、GetSecretValue API呼び出しのアプリケーションコードで参照されます。