Score:0

นโยบายคีย์ KMS ที่ดีสำหรับ AWS Landing Zone (Control Tower) มีลักษณะอย่างไร

ธง ml

ฉันเพิ่ง "ทำลาย" หอบังคับการด้วยการเพิ่มคีย์ KMS ไปยังหัวข้อ SNS ของหอควบคุมด้วยตนเอง สิ่งนี้ไม่ได้ผลดีนักเมื่อ Control Tower ทำการตรวจสอบหรืออัปเกรดสแต็ค ฉันต้องถอดกุญแจออกและสะกิดสแต็กบางส่วนเพื่อให้อยู่ในสภาพปกติ แต่ตอนนี้หัวข้อ SNS ไม่ได้รับการเข้ารหัสและ Security Hub ก็ไม่มีความสุข

ก่อนหน้านี้ ฉันปรับใช้คีย์ KMS เพื่อใช้ในหัวข้อ SNS กับบัญชีองค์กรทั้งหมด (หนึ่งคีย์ในแต่ละบัญชี) แต่ตอนนี้ฉันเข้าใจแล้วว่า Control Tower สามารถทำสิ่งนี้ให้ฉันได้หากฉันให้คีย์ในการสร้างหรือแก้ไข Landing Zone จากที่ฉันเข้าใจว่าคีย์นี้ต้องเป็นคีย์เดียวในบัญชีการจัดการและมีนโยบายที่อนุญาตให้ใช้บริการ Config และ CloudTrail เป็นอย่างน้อย แต่สามารถใช้ได้ในบัญชีทั้งหมดของฉันด้วย

หากมีใครสามารถกรุณาให้แม่แบบว่าหน้าตาจะเป็นอย่างไรฉันจะขอบคุณมาก กรุณาและขอบคุณ :)

Tim avatar
gp flag
Tim
ยังไม่ชัดเจนว่าคำถามของคุณคืออะไร คุณสามารถแก้ไขเพื่อลบรายละเอียดที่ไม่เกี่ยวข้องและมุ่งเน้นไปที่สถานะปัจจุบันและปัญหาได้หรือไม่ การชี้แจง เช่น การอธิบายว่า "คีย์ SNS" มีประโยชน์อย่างไร คุณอาจหมายถึงคีย์ที่จัดการโดยลูกค้า KMS ซึ่งมีไว้สำหรับใช้งาน SNS เป็นต้น
ml flag
@ทิม ขอโทษ! นั่นคือการพิมพ์ผิด/ชวเลข นอกจากนี้: ฉันได้ทดลองวิธีแก้ปัญหาเล็กน้อยและฉันคิดว่าฉันเข้าใจแล้ว ฉันจะตอบคำถามของตัวเองเมื่อฉันมีเวลาตรวจสอบ
Massimo avatar
ng flag
ฉันไม่เคยหยุดที่จะประหลาดใจกับความคลุมเครือของ AWS สำหรับผู้ใช้ที่ไม่ใช่ AWS
Score:0
ธง jp

ฉันสามารถทำให้มันทำงานผ่านการรวมกันของคำตอบข้างต้น รวมทั้งอนุญาตให้บทบาทบริการ AWS ต่อไปนี้ใช้คีย์:

"arn:aws:iam::112211221122:role/service-role/AWSControlTowerConfigAggregatorRoleForOrganizations",
"arn:aws:iam::112211221122:role/service-role/AWSControlTowerStackSetRole",
"arn:aws:iam::112211221122:role/service-role/AWSControlTowerAdmin",
"arn:aws:iam::112211221122:role/service-role/AWSControlTowerCloudTrailRole"

ฉันไม่รู้ว่าทั้งหมดนี้จำเป็นหรือไม่ ฉันแค่เดา

Score:0
ธง ml

ฉันไม่สามารถปล่อยมันไปได้ ดังนั้นฉันจึงทำการทดสอบและพบว่าสิ่งต่อไปนี้น่าจะเป็นวิธีแก้ปัญหาที่ดี

ประเด็นสำคัญที่ฉันได้เรียนรู้:

  • ดูเหมือนว่าบริการต้องการสิทธิ์ "kms:GenerateDataKey" เท่านั้น
  • ใช้เงื่อนไข "StringLike" ไม่ใช่ "StringEquals" ถ้าคุณต้องการ *-wildcard

นี้ เอกสาร ค่อนข้างมีประโยชน์ ฉันไม่ประสบความสำเร็จในการสร้างนโยบายที่ใช้ "aws:SourceArn" หรือ "aws:SourceAccount" แต่ฉันทำสำเร็จด้วย "kms:EncryptionContext:context"

นี่คือนโยบายของฉัน หมายเลขบัญชีถูกแก้ไข:

{
    "เวอร์ชัน": "2012-10-17",
    "รหัส": "คีย์ SNS-KMS",
    "คำแถลง": [
        {
            "ซิด": "ผู้ดูแลหลักในบัญชี mgmt",
            "เอฟเฟกต์": "อนุญาต",
            "อาจารย์ใหญ่": {
                "AWS": "arn:aws:iam::112211221122:root"
            },
            "การดำเนินการ": "kms:*",
            "ทรัพยากร": "*"
        },
        {
            "Sid": "การอนุญาตบริการ AWS ในทุกบัญชี",
            "เอฟเฟกต์": "อนุญาต",
            "อาจารย์ใหญ่": {
                "บริการ": [
                    "config.amazonaws.com",
                    "cloudtrail.amazonaws.com"
                ]
            },
            "หนังบู๊": [
                "kms: สร้างคีย์ข้อมูล",
                "kms: เข้ารหัส",
                "kms:ถอดรหัส",
                "kms:DescribeKey",
                "kms:เข้ารหัสใหม่*"
            ]
            "ทรัพยากร": "*"
        }
    ]
}

ฉันหวังว่าจะมีคนพบว่าสิ่งนี้มีประโยชน์ โปรดทราบว่าฉันสงสัยว่าคุณอาจใช้เงื่อนไขเพื่อจำกัดคำสั่งสุดท้ายได้ ไม่ได้รับสิ่งนั้นเพื่อทำงานเอง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา