Akses AWS Secrets Manager rahasia dari akun yang berbeda - AWS Secrets Manager

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Akses AWS Secrets Manager rahasia dari akun yang berbeda

Untuk memungkinkan pengguna dalam satu akun mengakses rahasia di akun lain (akses lintas akun), Anda harus mengizinkan akses baik dalam kebijakan sumber daya maupun dalam kebijakan identitas. Ini berbeda dengan memberikan akses ke identitas di akun yang sama dengan rahasia.

Izin lintas akun hanya efektif untuk operasi berikut:

Anda dapat menggunakan BlockPublicPolicy parameter dengan PutResourcePolicytindakan untuk membantu melindungi sumber daya Anda dengan mencegah akses publik diberikan melalui kebijakan sumber daya yang secara langsung melekat pada rahasia Anda. Anda juga dapat menggunakan IAM Access Analyzer untuk memverifikasi akses lintas akun.

Anda juga harus mengizinkan identitas untuk menggunakan kunci KMS yang rahasianya dienkripsi. Ini karena Anda tidak dapat menggunakan Kunci yang dikelola AWS (aws/secretsmanager) untuk akses lintas akun. Sebagai gantinya, Anda harus mengenkripsi rahasia Anda dengan kunci KMS yang Anda buat, lalu lampirkan kebijakan kunci ke dalamnya. Ada biaya untuk membuat kunci KMS. Untuk mengubah kunci enkripsi untuk rahasia, lihatMemodifikasi AWS Secrets Manager rahasia.

penting

Kebijakan berbasis sumber daya yang memberikan secretsmanager:PutResourcePolicy izin memberi kepala sekolah, bahkan yang ada di akun lain, kemampuan untuk mengubah kebijakan berbasis sumber daya Anda. Izin ini memungkinkan kepala sekolah meningkatkan izin yang ada seperti mendapatkan akses administratif penuh ke rahasia. Kami menyarankan Anda menerapkan prinsip akses paling tidak istimewa ke kebijakan Anda. Untuk informasi selengkapnya, lihat Kebijakan berbasis sumber daya.

Contoh kebijakan berikut mengasumsikan Anda memiliki kunci rahasia dan enkripsi di Account1, dan identitas di Account2 yang ingin Anda izinkan untuk mengakses nilai rahasia.

Langkah 1: Lampirkan kebijakan sumber daya ke rahasia di Akun1
  • Kebijakan berikut memungkinkan ApplicationRole masuk Account2 untuk mengakses rahasia diAccount1. Untuk menggunakan kebijakan ini, lihatKebijakan berbasis sumber daya.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account2:role/ApplicationRole" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }
Langkah 2: Tambahkan pernyataan ke kebijakan kunci untuk kunci KMS di Akun1
  • Pernyataan kebijakan kunci berikut memungkinkan ApplicationRole Account2 untuk menggunakan kunci KMS Account1 untuk mendekripsi rahasia di. Account1 Untuk menggunakan pernyataan ini, tambahkan ke kebijakan kunci untuk kunci KMS Anda. Untuk informasi selengkapnya, lihat Mengubah kebijakan utama.

    { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account2:role/ApplicationRole" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }
Langkah 3: Lampirkan kebijakan identitas ke identitas di Akun2
  • Kebijakan berikut memungkinkan ApplicationRole masuk Account2 untuk mengakses rahasia Account1 dan mendekripsi nilai rahasia dengan menggunakan kunci enkripsi yang juga ada di. Account1 Untuk menggunakan kebijakan ini, lihatKebijakan berbasis identitas. Anda dapat menemukan ARN untuk rahasia Anda di konsol Secrets Manager di halaman detail rahasia di bawah Rahasia ARN. Atau, Anda dapat menelepon describe-secret.

    JSON
    { "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "SecretARN" }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:Region:Account1:key/EncryptionKey" } ] }